[英]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.