我的表的列名displayorders的值介于1到250之间,并且不是自动递增的。
现在,我想在表中添加一个新行,其displayorder
=3。因此,我不想手动将3到250的所有值更新。相反,我想将所有displayorders更新为+1,并且可以手动更改从1到2(即更新后的2到3)。如何通过SQL Query完成?
最佳答案
如果我理解正确,那么您将要运行一个UPDATE
语句,如下所示:
UPDATE your_table SET displayorder = displayorder + 1 WHERE displayorder > 2;
测试用例:
CREATE TABLE your_table (displayorder int);
INSERT INTO your_table VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9);
UPDATE
语句之后的结果:SELECT * FROM your_table;
+--------------+
| displayorder |
+--------------+
| 1 |
| 2 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
+--------------+
9 rows in set (0.00 sec)