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

标签 mysql select union conditional-statements where

试图找到答案,还是找不到.. 表格如下:

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/

相关文章:

mysql - 在 Mysql 上连接多个表

Python ctypes : get variable type and value problem

mysql - Union MYSQL 中的 GROUP BY

java - 如何诊断野蝇10.1下降的原因

php - 查找一周(或月、季度或年)的第一天和最后一天

MySQL - 选择关系数据避免左连接的最快方法

php - 从 MySql 返回小于 60 天的行

union - SymPy:符号区间的并集

sql - MySQL中的字符编码问题

mysql - 如何返回一些带有时间间隔的 * 数据?