MySQL查询返回的行
问题描述:
我有台这样的MySQL查询返回的行
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”,这意味着我有值1和3的所有POST_ID。
答
我算多少属性相匹配,本说明书和过滤他们的count
与having
条款:
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
由于它的工作原理,但究竟是在此查询的意思是“HAVING COUNT(*)= 2” ? – 2014-09-22 17:25:26
的'having'子句是施加的条件** **后的分组。所以,基本上,这个查询选择所有年=地2014年OR月= 09和计数有多少匹配有平均每个职位的职位。如果有2,这意味着这两个条件得到满足,这就是你想要返回一个职位。 – Mureinik 2014-09-22 17:28:52