MySQL查询各个分组中的前几条数据/每个分类的前几条数据
1、问题:有两张表,一张商品表,一张分类表,我需要查出每个分类的前三个商品出来
2、方法:使用MySQL8的窗口函数 (ROW_NUMBER() OVER() ),好像 是8版本开始才支持。
1 2 3 4 5 6 7 8 9 10 | select * from ( select t.title tag_title, r.tag_id, m.title title, row_number() over (partition by r.tag_id order by m.sort desc ) as row_num from positive_meditation m inner join positive_meditation_tag_rel r on (m.id = r.record_id and t.id = r.tag_id) where t.category_id in (1, 2)) t where row_num < 4; |
参考资料:MySQL 8.0窗口函数 ROW_NUMBER() OVER()函数的使用_Ch3n的博客-CSDN博客_mysql row_number()over()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix