我在 MySQL 中有一个表
,如下所示:
我正在尝试以下查询:
select * from test.score_card where playerId in(2,3);
select * from test.score_card where playerId not in(0);
我需要一个单行查询,以便它应该显示输出,就好像我通过了
playerId
在 WHERE IN 子句中,那么它应该显示所选行,或者如果我
不要传递任何值,那么它应该选择所有行。
最佳答案
所以是 or 语句?
select * from test.score_card
where (playerId in(2,3)) or (playerId not in(0));
或者更复杂,如果第一组的计数等于 0,则仅返回第二组:
SELECT * FROM test.score_card
WHERE playerId in (2,3)
UNION
SELECT * FROM test.score_card
WHERE (
SELECT count(*) FROM test.score_card
WHERE playerId in (2,3))=0 AND playerId not in (0);
(未经测试,可能有错字)
关于mysql - 选择列 where 子句或如果没有条件则选择所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44661709/