我有MySQL中的table
如下:选择列where子句或如果没有条件,那么选择所有列
我尝试以下查询:
select * from test.score_card where playerId in(2,3);
select * from test.score_card where playerId not in(0);
我需要一个单行查询,以便它应显示输出,如果我通过
playerId
在WHERE IN子句中那么它应该显示选定的行或者如果我不通过任何值,那么它应该选择所有行。
你是如何调用这个?这是一个原始的SQL查询还是基于用户输入并在事后传递给数据库?如果它基于用户输入并且没有任何内容被传入,那么可以使用“合并(输入字符串,ID)”中的“id”并传递“2,3,4,x”,并且它会说“如果有值在输入字符串中,使用它,否则匹配表中每个id匹配其自身的地方。“还有一件事 - “0”并不意味着“不存在”。 NULL意味着“没有价值”。在你上面的表中,没有“0”,你可以简单地用“和id不为空”替代,这是没有意义的,因为ID在你的PK中。 –