Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如果第一个条件为真,如何在MySQL查询中使用OR并忽略第二个条件?_Database_Mysql_Sql - Fatal编程技术网

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

Database 如果第一个条件为真,如何在MySQL查询中使用OR并忽略第二个条件?,database,mysql,sql,Database,Mysql,Sql,我使用的查询如下: SELECT * FROM table1 WHERE countries LIKE '%US%' OR countries LIKE '%ALL%'; 这将返回在countries列中包含“US”或“all”的所有条目,但我希望它只返回包含“US”的行,如果找到non,则使用下一个条件并返回所有包含“all”的行 可以只在一个查询中执行此操作吗?我认为不可能只在一个SQL查询中执行此操作。如果您使用的是mysql,尽管我没有尝试过此操作,但您可以尝试此操作 SELECT

我使用的查询如下:

SELECT * FROM table1 WHERE countries LIKE '%US%' OR countries LIKE '%ALL%';
这将返回在countries列中包含“US”或“all”的所有条目,但我希望它只返回包含“US”的行,如果找到non,则使用下一个条件并返回所有包含“all”的行


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

我认为不可能只在一个SQL查询中执行此操作。

如果您使用的是mysql,尽管我没有尝试过此操作,但您可以尝试此操作

 SELECT IF(field1 is null, field2, field1) FROM table1;
这里字段1是“像我们这样的国家”,字段2是“像所有国家一样的国家”

通过使用子查询:

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