[英]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
表的初始內容:
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.