如果第一个为真,如何在MySQL查询中使用OR并忽略第二个条件?

时间:2010-10-14 22:17:47

标签: database mysql sql

我正在使用这样的查询:

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

这将返回所有在“国家/地区”列中包含“US”或“ALL”的条目,但我希望它仅返回包含“US”的行,如果找到“非”,则使用下一个条件并返回所有包含“ALL”。

是否可以只在一个查询中执行此操作?

3 个答案:

答案 0 :(得分:2)

使用子查询:

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

答案 1 :(得分:0)

我认为只有一个SQL查询是不可能的。

答案 2 :(得分:0)

如果您使用的是mysql,虽然我没有尝试过,但您可以试试这个。

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

这里field1是你的“像美国这样的国家”,field2是“像ALL这样的国家”。