我的查询如下所示:
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
参见:http://dev.mysql.com/doc/refman/5.0/en/bit-functions.html
关于MySQL - 更好的语法来比较 where 子句中的多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8020616/