我正在使用这样的查询:
SELECT * FROM table1 WHERE countries LIKE '%US%' OR countries LIKE '%ALL%';
这将返回所有在“国家/地区”列中包含“US”或“ALL”的条目,但我希望它仅返回包含“US”的行,如果找到“非”,则使用下一个条件并返回所有包含“ALL”。
是否可以只在一个查询中执行此操作?
答案 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这样的国家”。