簡體   English   中英

基於另一列的mysql AUTO_INCREMENT

[英]mysql AUTO_INCREMENT based on another column

如何根據price列上的0到最大值(int)自動增加id列。

假設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

一種簡單的方法,可以使用自動增量功能創建一個新的表格,該表格多一列。

intert into newtable select '',o.* from oldtable o order by o.price asc;

然后他們以正確的順序將所有行從價格插入新表中。

如果您只想使用具有rownumber的行,則可以這樣做:

SELECT @nr:=@nr+1 AS id,c.* FROM mytable c, (SELECT @nr:=0) tmp;

feld x不是自動遞增。 它只是一個非唯一索引

SET @nr:=0;
UPDATE newtable n SET n.x = @nr:=@nr+1 ORDER BY n.price ASC;

抱歉,您必須發送2條查詢。 首先將rhe Variable nr設置為0,然后設置update語句

SET @nr:=0;
UPDATE your_table_name t
  SET t.id = @nr:=@nr+1
  ORDER BY t.price ASC;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM