Mysql记录划分程序

Mysql记录划分程序

问题描述:

我有一个2列表(ID,IdResponsible) 我需要创建一个过程,该表中的每个记录,IdResponsible列填充计数器1到4.Mysql记录划分程序

如果de counter> 4 then counter = 1

我该怎么做?

您可以生成排名行号并将其重置为每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 | 
+0

WOW!谢谢,它的工作原理! – fabinho