表1:有3列说id,key&值。
+----+-----+-------+
| ID | KEY | VALUE |
+----+-----+-------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 1 |
| 4 | 2 | 2 |
| 5 | 3 | 1 |
| 6 | 3 | 2 |
| 7 | 4 | 1 |
| 8 | 4 | 2 |
| 9 | 5 | 1 |
| 10 | 5 | 2 |
+----+-----+-------+
这个表键和值都可以重复,但两者的组合是唯一的。
如果我想根据键值对查询多行,并在id上查询 NOT 。我怎么能这样做?
注意:我知道我可以这样做
SELECT * from Table1
WHERE (key=1 AND value=2) OR
(key=1 AND value=1) OR
(key=5 AND value=1);
我希望能有更好更简洁的东西,因为我需要查询大约40K的键值对。
答案 0 :(得分:1)
没有其他正确的方法,而不是你已经在做的事情。您应该在唯一列上进行比较,在您的情况下为traverseData()
。是的,您可以使用ID
运算符来缩短它,以比较行构造函数
IN
有关相同内容的详情,请参阅MySQL Documentation。