如何为每组数据生成增量编号?

时间:2018-06-09 08:03:21

标签: php mysql laravel eloquent

这是我的表数据

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_category字段为每组数据生成序列号。我尝试了dense_rank()方法,但MySQL不支持它。

如何以这种方式为每个组生成序列号?

DENSE_RANK() OVER (ORDER BY id_category) As seq_no

我的查询

Product::leftJoin('category','category.id_category','=','product.id_category')
........
->get();

1 个答案:

答案 0 :(得分:0)

如果您没有大量数据,那么

可能最容易
  • 抓住一切
  • 按类别分组
  • 按产品对每个类别进行排序
  • 循环遍历每个类别并根据当前索引设置序列号

虽然我不知道表格的确切性质,但它看起来像这样,以您的查询为开头:

{{1}}

虽然请注意,这应该被视为伪代码,并且最适合您的应用。