我有一個包含id和版本號(以及其他幾個字段)的表,我想對與我所知的id和版本不匹配的所有行進行查找。基於SQL中的兩個同步數組選擇數據
我試過這樣的事情,但它不是我想要的。
SELECT * FROM table WHERE id NOT IN (1,2,3) AND version NOT in (4,5,6);
上面的查詢看起來像這樣的工作:
SELECT * FROM table WHERE id != 1 AND version != 4;
SELECT * FROM table WHERE id != 1 AND version != 5;
SELECT * FROM table WHERE id != 1 AND version != 6;
SELECT * FROM table WHERE id != 2 AND version != 4;
SELECT * FROM table WHERE id != 2 AND version != 5;
SELECT * FROM table WHERE id != 2 AND version != 6;
SELECT * FROM table WHERE id != 3 AND version != 4;
SELECT * FROM table WHERE id != 3 AND version != 5;
SELECT * FROM table WHERE id != 3 AND version != 6;
我真正想要的是什麼,是使用相同的數組鍵爲兩個列表,像這樣:
SELECT * FROM table WHERE id != 1 AND version != 4;
SELECT * FROM table WHERE id != 2 AND version != 5;
SELECT * FROM table WHERE id != 3 AND version != 6;
所以這數據集只返回第二行。
id | version
------------
1 | 4
2 | 7
3 | 6
我試圖尋找SQL文檔像一個for循環,而不能真正找出是否存在以及它是如何工作的。
這句法後一些更多的閱讀使我在這裏:http://stackoverflow.com/questions/13426203/MySQL的知識到體選-行與 - 多對合where子句。有一些關於優化和更大的數據集的好建議。希望它能幫助別人。 – Neograph734