mysql AUTO_INCREMENT基于另一列

时间:2015-08-24 17:24:20

标签: php mysql sql increment

如何根据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

4 个答案:

答案 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;