SQL 中是否有一个变量可以用来表示一个字段的所有可能值?像这样的伪代码
SELECT name FROM table WHERE id = *ALL_EXISTING_ID-s*
在这种情况下,我想返回所有行,但是稍后当我进行搜索并且只需要一个项目时,我可以简单地将那个变量替换为id
我正在寻找的变量,即
SELECT name FROM table WHERE id = 1
SQL 中是否有一个变量可以用来表示一个字段的所有可能值?像这样的伪代码
SELECT name FROM table WHERE id = *ALL_EXISTING_ID-s*
在这种情况下,我想返回所有行,但是稍后当我进行搜索并且只需要一个项目时,我可以简单地将那个变量替换为id
我正在寻找的变量,即
SELECT name FROM table WHERE id = 1
最简单的方法是删除 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)