簡體   English   中英

從特定數字開始更改表中所有行的 id 值

[英]Change id values of all rows in table STARTING from a specific number

我在一個表中有 1000 行..

我正在獲取最后一個和下一個可用的 ID(開始)

$latest_id = ("SELECT * FROM `vehicles` WHERE ID = (SELECT MAX(ID) FROM `vehicles`)");

我想要實現的是單擊按鈕時,將所有 1000 行的 id 值更改為從$latest_id開始

所以現在是:

id 1 = car 1
id 2 = car 2
id 3 = car 3
...

id 1001 = car 1
id 1002 = car 2
id 1003 = car 3
...

有人可以幫我查詢 sql 嗎?

您可以編寫一個update語句,將表與計算最大值的子查詢交叉連接,然后將最大值添加到每個id

update vehicles v
inner join (select max(id) id from vehicles) vmax
set v.id = vmax.id + v.id

DB Fiddle 上的演示

表的初始內容:

id | car  
-: | :----
 1 | car 1
 2 | car 2
 3 | car 3
 4 | car 4

運行查詢后:

id | car  
-: | :----
 5 | car 1
 6 | car 2
 7 | car 3
 8 | car 4

UPDATE語句與JOIN一起使用

UPDATE vehicles as v
JOIN (SELECT MAX(id) AS maxid
      FROM vehicles) AS x
SET v.id = v.id + x.maxid

暫無
暫無

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

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