我的表的列名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)

10-05 19:30