mysql中每个分类取几条数据mysql写法
在业务中,我们经常需要筛选一些数据,比如我要知道我发布的文章,每个类别取出最新的5条数据,sql怎么写呢
假设有个文章表如下,选出每个类别最新发布的4条数据
ID(编号) | TITLE(标题) | CATALOG(类别) | ATIME(时间) |
---|---|---|---|
1 | bfw框架的基本流程 | 编程 | 2019-11-11 |
2 | bfwsoa如何进行限流 | 框架 | 2018-11-11 |
1、union写法
(select * from article where catalog='load' LIMIT 0,4) UNION (select * from article where catalog='ai' LIMIT 0,4)
2、程序合并
在java或php中每次获取一个类别的数据,在内存中进行数组合并
3、嵌套写法
SELECT id,title,catalog FROM article a WHERE (SELECT count(*) FROM article b WHERE b.catalog =a.catalog AND b.id>a.id )<4 ORDER BY catalog asc,id desc;
网友评论0