簡體   English   中英

如果第一個為true,如何在MySQL查詢中使用OR並忽略第二個條件?

[英]How to use OR in MySQL query and ignore second condition if first is true?

我正在使用這樣的查詢:

SELECT * FROM table1 WHERE countries LIKE '%US%' OR countries LIKE '%ALL%';

這將返回在國家列中具有“ US”或“ ALL”的所有條目,但我希望它僅返回包含“ US”的那些行,如果未找到,則使用下一個條件並返回包含“ ALL”的所有條目”。

只能在一個查詢中執行此操作嗎?

通過使用子查詢:

SELECT * 
FROM table1 
WHERE countries LIKE (CASE WHEN (SELECT COUNT(*) 
                                 FROM table1 
                                 WHERE countries LIKE '%US%') = 0
                           THEN '%ALL%'
                           ELSE '%US%'
                       END)

我認為不可能僅使用一個SQL查詢。

如果您使用的是mysql,雖然我還沒有嘗試過,但是您可以嘗試一下。

 SELECT IF(field1 is null, field2, field1) FROM table1;

在這里,field1是您的“像美國一樣的國家”,field2是“像所有國家一樣的國家”。

暫無
暫無

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

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