如何在 MySQL 中设置计数器列值?

Jon*_*ury 0 mysql sql sql-update

我有一个带有“SortID”列的表,该列使用连续数字进行编号。每当删除一行时,就会留下一个空白。有没有办法使用纯 SQL 用行号更新行?像这样的东西:

UPDATE tbl SET SortID={rowindex} ORDER BY SortID
Run Code Online (Sandbox Code Playgroud)

(我意识到这不是有效的 SQL,这就是我寻求帮助的原因)

这应该将第一行设置为#1,第二行设置为#2...等等。这可以使用 SQL 吗?请原谅措辞不佳的问题,我不确定问这个问题的最佳方式。:)

zom*_*bat 6

MySQL 变量可用于此目的。

SET @a:=0;
UPDATE tbl SET sortId=@a:=@a+1 ORDER BY sortId;
Run Code Online (Sandbox Code Playgroud)