寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、Office办公、随笔等内容。

MySQL如何按每个分类查询10条数据,即MySQL如何每个分类查询10条数据

MySQL如何按每个分类查询10条数据,这是做网站开发中通常会遇到的问题。实现方法很多,今天直接上干货,也不做过多的解释,了解就好。表结构如下图:

表结构.jpg

具体sql语句如下:

SELECT id,category_id,title,keywords,description,view,download,size,prefer,price,page,preview,image,type,t,file,search
FROM (  
    SELECT   
        id,category_id,title,keywords,description,view,download,size,prefer,price,page,preview,image,type,t,file,search,  
        @row_num := IF(@prev_category = category_id, @row_num + 1, 1) AS row_number,  
        @prev_category := category_id  
    FROM   
        content,  
        (SELECT @row_num := 0, @prev_category := NULL) r  
    ORDER BY   
        category_id asc, id asc
) AS ranked_results  
WHERE row_number <= 10;

更高效的语句如下:

SELECT 
    c.*
FROM 
    content as c
JOIN
    (SELECT
        id,
        @row_num := IF(@prev_category = category_id, @row_num + 1, 1) AS row_number,
        @prev_category := category_id
    FROM
        content,
        (SELECT @row_num := 0, @prev_category := NULL) r
    ORDER BY
        category_id ASC, id ASC
    ) AS ranked_results
    ON c.id = ranked_results.id
WHERE 
    row_number <= 10;


程序 2024-03-12 20:53:55 3 0 1223 mysql优化
文章写得不错?我是土豪我要在线打赏!
在线打赏

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?
Excel动态引用各表格指定单元格数据
开篇第一章
Excel文件内容很少,但文件很大,打开很慢怎么办?
如何利用python修改文件的创建时间,修改时间,访问时间
发现一个好网站——春燕文档
Ubuntu22.04中用thunar替换默认文件管理器,提示无法启动“TerminalEmulator“的首选应用程序
MySQL如何按每个分类查询10条数据,即MySQL如何每个分类查询10条数据
ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?
文章推荐
请不要奇怪,为什么最近博客的文章是几年前的内容
免责声明
关于博主
开篇第一章
随机推荐
Google will say no to China because of hackers attack gmail?
最近比较忙。。。
地震,你还要不要我们活啊?
毕业论文:生物柴油的合成
Windows xp升级至windows 7,xp+win7双系统只为QQ概念版
聚聚散散
本博客系统开启评论IP黑名单、关键词黑名单功能
Asp学习札记-最简单的论坛
用ASP+XML编写留言本
感觉很好,转过来。教子有方啊。
友情连接
春燕网络
春燕文档
谢润的博客