1
我有5行ID:1,2,3,4,5。如何使执行更新反向查询MySQL通过ID?
然后我做了一个查询来尝试这些ID更改为:2,3,4,5,6
Update table set `id` = `id` + 1
然后我得到:关键
重复条目'2'主'。
我明白这个查询首先由ID 1执行,原因是PRIMARY 2已经存在。
所以我的问题是,如何让查询已被执行的ID从5到1
我有5行ID:1,2,3,4,5。如何使执行更新反向查询MySQL通过ID?
然后我做了一个查询来尝试这些ID更改为:2,3,4,5,6
Update table set `id` = `id` + 1
然后我得到:关键
重复条目'2'主'。
我明白这个查询首先由ID 1执行,原因是PRIMARY 2已经存在。
所以我的问题是,如何让查询已被执行的ID从5到1
创造了从1到100的数字定义在列NUM一个主键的表num_sample。并写了这个更新
update num_sample set num = num + 1 order by num desc limit 100;
在MySQL中工作绝对好。
另一种方法不ORDER BY
和LIMIT
:
SET @MAX_ID = SELECT MAX(ID) FROM YOUR_TABLE;
UPDATE YOUR_TABLE
SET ID = ID + @MAX_ID
UPDATE YOUR_TABLE
SET ID = ID - @MAX_ID - 1
你应该尝试'ORDER BY ID DESC',看看它是否工作 –
@Tin陈德良,它会工作。 – MontyPython
非常感谢。这很简单,但我想不到 –