开发者

How can I set a counter column value in MySQL?

开发者 https://www.devze.com 2022-12-24 15:50 出处:网络
I have a table with a \"SortID\" column that is n开发者_如何学Goumbered using consecutive numbers. Whenever a row is deleted, it leaves a gap. Is there a way using pure SQL to update the rows with the

I have a table with a "SortID" column that is n开发者_如何学Goumbered using consecutive numbers. Whenever a row is deleted, it leaves a gap. Is there a way using pure SQL to update the rows with their row number? Something like this:

UPDATE tbl SET SortID={rowindex} ORDER BY SortID

(I realize this isn't valid SQL, that's why I'm asking for help)

This should set the first row to #1, the second row to #2... etc. Is this possible using SQL? Please forgive the poorly worded question, I'm not really sure the best way to ask this. :)


MySQL variables can be used for this.

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


You can use mysql user defined variables

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


Are you sure you need it? Presentation layer is used for numbering most of time.

0

精彩评论

暂无评论...
验证码 换一张
取 消