SQL中是否有可用于表示 ALL 字段可能值的变量?像这样的伪代码
SELECT name FROM table WHERE id = *ALL_EXISTING_ID-s*
我希望在这种情况下返回所有行,但是稍后当我进行搜索并且只需要一个项目时,我可以简单地用我正在寻找的id
替换该变量,即
SELECT name FROM table WHERE id = 1
答案 0 :(得分:4)
最简单的方法是删除WHERE子句。这将返回所有行。
SELECT name FROM table
如果您想要一些“魔术”值,您可以使用现有查询中可以使用的ID,它将返回所有行,我认为您运气不佳。
虽然你可以使用这样的东西:
SELECT name FROM table WHERE id = IFNULL(?, id)
如果提供了值NULL
,则将返回所有行。
如果您不喜欢NULL
,请尝试以下查询,如果提供了值-1
,则会返回所有行:
SELECT name FROM table WHERE id = IFNULL(NULLIF(?, -1), id)
实现相同效果的另一种方法(但需要将id绑定两次)是:
SELECT name FROM table WHERE (id = ? OR ? = -1)