我有一个表,有如下列,例如:
id,col1,col2,col3,col4
现在,我想判断col1, col2, col3, col4
中的ANY
是否具有传入值.
要做到这一点还有很长的路要走..
SELECT * FROM table WHERE (col1 = 123 OR col2 = 123 OR col3 = 123 OR col4 = 123);
我猜这是IN
的相反版本.
有没有更简单的方法来做我想做的事?
我有一个表,有如下列,例如:
id,col1,col2,col3,col4
现在,我想判断col1, col2, col3, col4
中的ANY
是否具有传入值.
要做到这一点还有很长的路要走..
SELECT * FROM table WHERE (col1 = 123 OR col2 = 123 OR col3 = 123 OR col4 = 123);
我猜这是IN
的相反版本.
有没有更简单的方法来做我想做的事?
可以使用IN
谓词,如下所示:
SELECT * FROM table WHERE 123 IN(col1, col2, col3, col4);
这与IN的版本相反.
No it is not,这和你在问题中使用OR
是一样的.
谓词IN
或集合成员定义为1:
其中Value Expression
可以是2:
所以这样做很好,使用值表达式123
,这是一个文本.
1, 2: Images from: SQL Queries for Mere Mortals(R): A Hands-On Guide to Data Manipulation in SQL