MySQL获取两个不同列中的键值对

时间:2015-09-24 20:00:33

标签: mysql ibatis

表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的键值对。

1 个答案:

答案 0 :(得分:1)

没有其他正确的方法,而不是你已经在做的事情。您应该在唯一列上进行比较,在您的情况下为traverseData()。是的,您可以使用ID运算符来缩短它,以比较行构造函数

IN

有关相同内容的详情,请参阅MySQL Documentation