想象一下,有一个包含以下内容的表:
x y z
aa 5 null
bb 2 null
cc 5 null
dd 1 null
Run Code Online (Sandbox Code Playgroud)
我想按行排序y并为z分配一个自动递增的字段,所以在这种情况下,最终结果(更改的表)将是
x y z
dd 1 1
bb 2 2
aa 5 3
cc 5 4
Run Code Online (Sandbox Code Playgroud)
要么
x y z
aa 5 3
bb 2 2
cc 5 4
dd 1 1
Run Code Online (Sandbox Code Playgroud)
我怎么做?
所以要说清楚,我想改变表格,而不是把这些东西转化为代码.
update your_table t1
inner join
(
select id, @rank := @rank + 1 as r
from your_table, (select @rank := 0) r
order by y
) t2 on t2.y = t.y
set z = r
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |