[英]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.