1

Informix 是否支持 SQL 子句中的短路?例如:

SELECT * FROM myTable
WHERE '0' IN (listOfValues) OR myTable.code IN (listOfValues) 

其中listOfValues是用户指定的代码列表(其中“0”表示所有代码)。

非常感谢!

4

1 回答 1

1

嗯,是的,也不是。

这取决于您如何构建listOfValues. 您不能?对列表变量使用占位符,但您确实可以直接编写该 SQL,它会解析并执行您想要的操作。如果你愿意,你可以称之为短路。

SELECT * FROM myTable
WHERE '0' IN ('0') OR myTable.code IN ('0')

会做你需要的。但是准备

SELECT * FROM myTable
WHERE '0' IN (?) OR myTable.code IN (?)

并使用指向列表的绑定变量执行它会产生运行时错误。

关于为什么应该使用绑定变量的所有常见警告仍然适用,您只需要找到其他方法来清除(验证)您的输入。

于 2013-06-11T23:58:50.960 回答