繁体   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