[英]mysql - select the 2nd blog from each category
如何从php mysql中的每个类别获取第二个帖子?
如果我有一个如下表:
post_id | cate_id
--------------------
1 | 2
2 | 4
3 | 2
4 | 1
5 | 1
6 | 3
7 | 4
8 | 3
9 | 5
10 | 5
预期结果如下:
post_id | cate_id
--------------------
5 | 1
3 | 2
8 | 3
7 | 4
10 | 5
谢谢。
select t.cate_id,min(t.post_id)
from (select cate_id, min(post_id) post_id from foo group by 1) firsts
inner join foo t on t.cate_id=firsts.cate_id and t.post_id > firsts.post_id
group by 1;
鉴于:
mysql> select cate_id, group_concat(post_id order by post_id) from foo group by 1;
+---------+----------------------------------------+
| cate_id | group_concat(post_id order by post_id) |
+---------+----------------------------------------+
| 0 | 0,1,3,4,7 |
| 1 | 0,1,2,4,6,8,9 |
| 3 | 7,11 |
| 4 | 2,3 |
| 5 | 1,3,9 |
| 6 | 0,2,5,6,7,8,9 |
| 7 | 0,2 |
| 8 | 0,1,4,6,7,8,9 |
| 9 | 1,2 |
+---------+----------------------------------------+
产生:
mysql> select t.cate_id,min(t.post_id) from (select cate_id, min(post_id) post_id from foo group by 1) firsts inner join foo t on t.cate_id=firsts.cate_id and t.post_id > firsts.post_id group by 1;
+---------+----------------+
| cate_id | min(t.post_id) |
+---------+----------------+
| 0 | 1 |
| 1 | 1 |
| 3 | 11 |
| 4 | 3 |
| 5 | 3 |
| 6 | 2 |
| 7 | 2 |
| 8 | 1 |
| 9 | 2 |
+---------+----------------+
SELECT MAX(post_id) post_ID, cate_id
FROM table1
GROUP BY cate_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.