primary │ id │ stuff
1 1 ......
2 2 ......
3 3 ......
4 4 ......
5 5 ......
这是我的桌子。可以说我删除了table.primary = 3
。之后,我想将table.id=4
更改为id=3
,将table.id=5
更改为id=4
。因为我需要逐个排列id
。如何在删除table.primary=3
后执行此操作?感谢。
答案 0 :(得分:3)
永远不要搞乱自动增量键!使用其他列进行排名,例如created
列,其中包含您添加记录的时间戳。然后,您可以在select语句中即时构建排名。喜欢这个
select *, @rank := @rank + 1 as ranking
from your_table
cross join (select @rank := 0) r
order by created