簡體   English   中英

SQL - 查詢期間的條件

[英]SQL - conditions during query

基本上我想通過我的數據庫中的所有 0,然后開始通過 2。

查詢是:

   SELECT IP,Time,HostName
     FROM RoughScan
CASE WHEN EXISTS (DeepScan=0) 
     THEN (DeepScan=0 LIMIT 1) 
     ELSE (DeepScan=2 LIMIT 1)

但我收到錯誤消息:

CASE 表達式意外結束(位置 0 處的“”附近)

我也在使用 MariaDB 服務器。

如果您想要每種類型的一行,請使用union all

(SELECT `IP`,`Time`,`HostName`
 FROM `RoughScan`
 WHERE DeepScan = 0
 LIMIT 1
)
UNION ALL
(SELECT `IP`,`Time`,`HostName`
 FROM `RoughScan`
 WHERE DeepScan = 2
 LIMIT 1
);

請注意, ORDER BY通常與LIMIT

您需要像這樣將 CASE 應用於 WHERE:

SELECT IP,Time,HostName
FROM RoughScan
WHERE 
  DeepScan = CASE 
    WHEN EXISTS (SELECT 1 FROM RoughScan WHERE DeepScan = 0) THEN 0 
    ELSE 2 
  END
LIMIT 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM