Mysql查询返回基于同一表中多列的行

标签 mysql sql

我有这样的 table

Post_ID  KEY    Value
1       year   2014
1       month   09
2       year   2014 
2      month    10
3       year   2014
3       month   09   

在此表中,我有 post_id 、键(表示帖子的年份和月份)和值(表示年份值和月份值)

我想返回所有发布为“2014”且月份为“09”的 post_ID,这意味着我有值 1 和 3。

最佳答案

我会计算有多少属性符合此规范并使用 having 子句过滤它们的 count:

SELECT   post_id
FROM     my_table
WHERE    (key = 'year' AND value = '2014') OR
         (key = 'month' AND value = '09')
GROUP BY post_id
HAVING   COUNT(*) = 2

关于Mysql查询返回基于同一表中多列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962746/

相关文章:

mysql - 以一个月为单位按周分组日期

sql - 需要帮助编写 SQL 查询

mysql - 删除父行

java - 如何使用jsp和mysql向单个帖子添加多个标签(数组)?

php 警告 mysql_connect

mysql - MySQL中止连接

sql - 寻求帮助以重构 SQLite 数据库设计

mysql - 插入 2(多个)选择?

sql - 针对每条记录从逗号分隔值中选择最小值/最大值

sql - 在 Oracle 的过程中重用选择查询