MySQL为每个组提供排名

时间:2018-01-02 09:01:56

标签: mysql phpmyadmin

我要做的是使用相同的id更新所有行列,并且数量越来越多,当没有更多的id我继续使用下一个行时。

表格

id  column
1   0
1   0
2   0
2   0
3   0
3   0

我试过了:

SELECT @i:=0;
UPDATE table SET column = @i:=@i+1

这样我更新了列,但列值类似于1 2 3 4 5 6和 每当行@i发生变化时,我必须将id重置为0。

表格

id  column
1   1
1   2
2   1
2   2
3   1
3   2

我想这应该是一个循环。但无法得到它。另外,当我试图在MySQL(PHPMyAdmin)中创建一个循环时,它给了我一个错误。我读到的是我不能直接在PHPMyAdmin中创建循环或者我误解了它?

1 个答案:

答案 0 :(得分:1)

UPDATE table ,(SELECT @curRow := 0, @curCol := '') r SET column=
    ( CASE id WHEN @curCol  THEN @curRow := @curRow + 1  ELSE @curRow := 1 AND @curCol := id END)

Test