2
我的查詢看起來是這樣的:MySQL的 - 更好的語法比較where子句中的多個變量
SELECT * FROM table WHERE id1 = id2 and id2 = id3 and id3 = id4 and id4 = id5
這工作,但它變得複雜,如果有多個ID。有什麼辦法可以縮短這個嗎? 謝謝。
我的查詢看起來是這樣的:MySQL的 - 更好的語法比較where子句中的多個變量
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