Bre*_*ett 40 mysql sql select query-optimization
我有一个像这样的列的表,例如:
id,col1,col2,col3,col4
Run Code Online (Sandbox Code Playgroud)
现在,我想检查ANY
的col1, col2, col3, col4
价值已经传入.
要做的很长的路要走..
SELECT * FROM table WHERE (col1 = 123 OR col2 = 123 OR col3 = 123 OR col4 = 123);
Run Code Online (Sandbox Code Playgroud)
我想这是相反的版本IN
.
有没有更简单的方法来做我想要的?
Mah*_*mal 103
您可以使用IN
谓词,如下所示:
SELECT * FROM table WHERE 123 IN(col1, col2, col3, col4);
Run Code Online (Sandbox Code Playgroud)
这是IN的反面版本.
不,不是,OR
就像你在问题中那样使用s一样.
谓词IN
或集合成员资格定义为1:
哪里Value Expression
可以是2:
所以这样做很好,使用值表达式123
,这是一个文字.
1,2:图像来自:SQL查询只是凡人(R):SQL中数据操作的动手指南