这个问题在这里已经有了答案:
在mysql中对结果进行排名(mysql等价于oracle中的'dense\u rank()'或'row\u number()'函数)(1个答案)
两年前关门了。
这是我的表格数据
prod_id category_id
1 1
2 2
3 2
4 3
5 3
6 3
预期结果
prod_id category_id seq_no
1 1 1
2 2 1
3 2 2
4 3 1
5 3 2
6 3 3
这只是根据类别生成序列号的示例之一,也可能是其他条件。
我试图根据id\u category字段为我获得的每组数据生成序列号。我尝试了dense\u rank()方法,但mysql不支持它。
如何以这种方式为每组生成序列号?
DENSE_RANK() OVER (ORDER BY id_category) As seq_no
我的问题
Product::leftJoin('category','category.id_category','=','product.id_category')
........
->get();
1条答案
按热度按时间f3temu5u1#
如果你没有大量的数据,可能最容易
抓住一切
按类别分组
按产品分类
循环遍历每个类别,并根据当前索引设置序列号
虽然我不知道您的表的确切性质,但它看起来是这样的,以您的查询为开始:
但请注意,这应该被视为伪代码,并根据最适合您的应用程序进行调整。