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

标签 database mysql sql

我正在使用这样的查询:

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

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

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

最佳答案

通过使用子查询:

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

关于database - 如何在 MySQL 查询中使用 OR 并在第一个条件为真时忽略第二个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938041/

相关文章:

sql - Teradata BTEQ : IF conditon , 使用运行时实际参数验证 SP 编译并导出 DDL

mysql - MySQL中主二进制日志和从二进制日志有什么区别?如何在两台服务器上实现相同的二进制日志?

mysql - 从新列中的两个表中减去两列

php - SQL 按公式加权行

php - MySQL 自动增加主键作为外键

mysql - 如何根据学号在联结表上进行选择

mysql - 连接两个表未按预期工作

mysql - 选择特定列数据的多次出现

mysql - 使用一个巨大的 MySQL 表?

python - 查找两个日期之间的日期范围并重复列