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

标签 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) = 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/

相关文章:

mysql - 使用foreign gem 指定自定义外键列名称

php - 实现类似 Google+ 圈子的功能

c# - c#连接mysql执行存储过程报错 "Data too long for column"

php - 只有一条记录带有 TRUNCATE INSERT 查询

Mysql创建具有外键约束的表时出现错误150

mysql错误: Llike operator throws error

jquery - 基于if条件的一个表上两个JOIN的SQL算法

mysql - 用户更改位置后,使用 Intel XDK、Google Map API 和 Cordova 将当前位置保存到数据库

mysql 没有给出想要的结果

php - 使用占位符时 PDO 执行速度较慢