如何根据id
列上的0到max(int)值自动递增price
列。
让我们假设price is ASC
,我希望id = 1
增量从$ 0开始。我需要为此代码ALTER TABLE table AUTO_INCREMENT = 1
编辑什么?
id | price | other columns
1 | 9
2 | 1
3 | 2
4 | 5
到
id | price | other columns
1 | 1
2 | 2
3 | 5
4 | 9
答案 0 :(得分:0)
一种简单的方法是使用自动增量创建一个包含更多列的新表。
intert into newtable select '',o.* from oldtable o order by o.price asc;
然后他们按照新表中价格的正确顺序插入所有行。
答案 1 :(得分:0)
如果您只想拥有一个rownumber行,那么您可以这样做:
SELECT @nr:=@nr+1 AS id,c.* FROM mytable c, (SELECT @nr:=0) tmp;
答案 2 :(得分:0)
feld x不是自动增量。它唯一一个非独特的指数
ThreadFactory
答案 3 :(得分:0)
抱歉, 你必须发送2个查询。第一个设置rhe变量nr为0和 然后更新声明
SET @nr:=0;
UPDATE your_table_name t
SET t.id = @nr:=@nr+1
ORDER BY t.price ASC;