试图找到答案,还是找不到.. 表格如下:
id, keyword, value 1 display 15.6 1 harddrive 320 1 ram 3
所以我需要的是这样的东西。从这个表中选择一个 id,其中 (keyword="display"and value="15.6") AND (keyword="harddrive"and value="320")
也有可能会有 3 或 4 个这样的关键字条件,它们应该导致返回一个 id(一行)
好像有什么东西可以处理UNION,但是我之前没有用过所以想不通
提前致谢
最佳答案
这是一个 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)
关于MySQL从表中选择一个字段WHERE条件在多行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559398/