繁体   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