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

时间:2010-03-27 03:04:02

标签: mysql sql sql-update

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

UPDATE tbl SET SortID={rowindex} ORDER BY SortID

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

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

3 个答案:

答案 0 :(得分:4)

MySQL variables可以用于此目的。

SET @a:=0;
UPDATE tbl SET sortId=@a:=@a+1 ORDER BY sortId;

答案 1 :(得分:1)

您可以使用mysql用户定义的变量

SET @pos=0;
SELECT @pos:=@pos+1, * FROM tbl ORDER BY SortID;

答案 2 :(得分:1)

你确定需要它吗?表示层用于大部分时间的编号。

相关问题