MySql教程

MySQL查询各个分组中的前几条数据/每个分类的前几条数据

本文主要是介绍MySQL查询各个分组中的前几条数据/每个分类的前几条数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、问题:有两张表,一张商品表,一张分类表,我需要查出每个分类的前三个商品出来

2、方法:使用MySQL8的窗口函数 (ROW_NUMBER() OVER() ),好像 是8版本开始才支持。

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()  

这篇关于MySQL查询各个分组中的前几条数据/每个分类的前几条数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!