Mysql记录分割程序

时间:2017-10-16 14:50:03

标签: mysql stored-procedures

我有一个包含2列的表(ID,IdResponsible) 我需要创建一个过程,对于该表中的每个记录,IdResponsible列用计数器1到4填充。

如果de counter> 4然后计数器= 1再次

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以生成排名行号并将其重置为每4行。像这样:

SELECT t.id, 
   CASE WHEN @rownum >= 4 THEN @rownum := 1
        ELSE @rownum := @rownum + 1 END AS IdResponsible
FROM table1 t, (SELECT @rownum := 0) r;

demo

这会给你类似的东西:

| id | IdResponsible |
|----|---------------|
|  1 |             1 |
|  2 |             2 |
|  3 |             3 |
|  4 |             4 |
|  5 |             1 |
|  6 |             2 |
|  7 |             3 |
|  8 |             4 |
|  9 |             1 |