mysql - 选择列 where 子句或如果没有条件则选择所有列

标签 mysql where-in

我在 MySQL 中有一个,如下所示:

我正在尝试以下查询:

select * from test.score_card where playerId in(2,3);

select * from test.score_card where playerId not in(0);

The table: score_card

我需要一个单行查询,以便它应该显示输出,就好像我通过了

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/

相关文章:

php - 我可以将数组绑定(bind)到 PDO 查询中的 IN() 条件吗?

MySQL - INSERT INTO table SELECT WHERE field IN(子查询) - 使用 IN 使事情变得非常慢,正确的方法是吗?

MySQL Where IN 数组

java - 基于 MySql/GigaSpaces/Netapp 的分布式锁服务

php mysql 表中没有的唯一随机数 - 检查然后生成

php - 计算*一个*行/记录中不同列中值的出现次数

mysql - 如何知道 MySql 的条件 INSERT 是否有效?

具有多个求和的Mysql计算不起作用

mysql - 带有条件 SELECT 检查的 SELECT FROM 表

php - 我可以将数组绑定(bind)到 PDO 查询中的 IN() 条件吗?