使用变量为mysql中的分组制作标签

时间:2018-04-18 09:54:15

标签: mysql variables select join

我想在 myclass 表中设置分组列的值,并将其值设为分组,只需4人参加。

这是 myclass 表格ORDER BY ID:

id  | name | grouping |
-----------------------
 1  | abc  |          |
 2  | bca  |          |
 3  | sad  |          |
 4  | tyu  |          |
 5  | hjh  |          |
 6  | lpk  |          |
 7  | ass  |          |
 8  | drc  |          |
 9  | dfg  |          |
 10 | drt  |          |
 11 | dgf  |          |

这就是我想要的:

 id | name | grouping  |
------------------------
 1  | abc  |    1A     |
 2  | bca  |    1A     |
 3  | sad  |    1A     |
 4  | tyu  |    1A     |  ==> the max name of group 1 is 4 name, and then change to group 1B
 5  | hjh  |    1B     |
 6  | lpk  |    1B     |
 7  | ass  |    1B     |
 8  | drc  |    1B     |
 9  | dfg  |    1C     |
 10 | dgf  |    1C     |
 11 | drt  |    1C     |

我正在使用变量:

SET @rn ='1A,1B,1C'; 但不能从那里继续

我想在Mysql查询中使用它,但我实际上想在Laravel PHP中使用它。先谢谢

1 个答案:

答案 0 :(得分:0)

你可以使用这个逻辑

设置@rn:= -1;

更新t     set grouping = 1 +((@ rn:= @rn + 1)div 4)     按ID排序;