mysql,取得每个类别的前几条数据,在线等

取得每个类别(category_id)的前3条数据

数据表,如下

 id category_id  name    content
 1    1          姓名1    内容记录1
 2    1          姓名2    内容记录2
 3    1          姓名3    内容记录3
 4    1          姓名4    内容记录4
 5    2          姓名5    内容记录5
 6    2          姓名6    内容记录6
 7    2          姓名7    内容记录7 
 8    2          姓名8    内容记录8
 9    3          姓名9    内容记录9
 10    3         姓名10   内容记录10
 11    3         姓名11   内容记录11 
 12    3         姓名12   内容记录12

先谢谢大家了

阅读 9.2k
2 个回答

SELECT FROM table a WHERE 3>(SELECT COUNT() FROM table WHERE category_id=a.category_id and id<a.id) ORDER BY a.category_id,a.id ASC;

先写一个select把category_id group by出来存入数组.
然后for循环这个数组 limit 3 就OK了.


欢迎关注我的blog rrtry.top~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题