MySQL从表中选择一个字段WHERE条件是多行

时间:2010-12-30 01:46:37

标签: mysql select union conditional-statements where

试图找到答案,但仍然不能......表格如下:

id, keyword,   value
1   display    15.6
1   harddrive  320
1   ram        3

所以我需要的是这样的..从这张表中选择(keyword="display" and value="15.6") AND (keyword="harddrive" and value="320") 还有可能会有3或4个这样的关键字条件导致返回一个id(一行)

似乎有一些东西需要与UNION打交道,但之前我没有使用它,所以我无法弄明白

提前致谢

2 个答案:

答案 0 :(得分:3)

这是一个relational division问题。像下面这样的东西应该这样做。

SELECT id
FROM your_table
WHERE 
(keyword="display" and value="15.6") OR (keyword="harddrive" and value="320")
GROUP BY id
HAVING COUNT(*) = 2

我假设您的表具有适当的约束,因此不可能存在完全重复的行。 (例如id, keyword上有PK)

答案 1 :(得分:0)

SELECT DISTINCT id FROM table
WHERE 
(keyword="display" and value=15.6) OR (keyword="harddrive" and value=320)