Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-在where子句中比较多个变量的更好语法_Mysql - Fatal编程技术网

MySQL-在where子句中比较多个变量的更好语法

MySQL-在where子句中比较多个变量的更好语法,mysql,Mysql,我的查询如下所示: SELECT * FROM table WHERE id1 = id2 and id2 = id3 and id3 = id4 and id4 = id5 这是可行的,但如果有更多的ID,情况会变得复杂。有没有办法缩短这个时间? 多谢各位 SELECT * FROM table WHERE (id1 | id2 | id3 | id4 | id5) = id1 AND (id1 & id2 & id3 & id4 & id5) = i

我的查询如下所示:

SELECT * FROM table WHERE id1 = id2 and id2 = id3 and id3 = id4 and id4 = id5
这是可行的,但如果有更多的ID,情况会变得复杂。有没有办法缩短这个时间? 多谢各位

SELECT * FROM table 
WHERE (id1 | id2 | id3 | id4 | id5) = id1 
  AND (id1 & id2 & id3 & id4 & id5) = id1 
|
是按位或
&
是按位和
^
是按位异或

另一个选择是:

SELECT * FROM table 
WHERE ((id1 ^ id2) | (id3 ^ id4) | (id4 ^ id1) | (id5 & id1)) = 0
见: