假设我们有一张名为students的表,包含两列:ID和姓名。我们想要交换相邻学生的ID。
代码示例:
-- 创建students表并插入样例数据
CREATE TABLE students (
ID INT,
Name VARCHAR(50)
);
INSERT INTO students (ID, Name)
VALUES (1, '小明'), (2, '小红'), (3, '小华'), (4, '小李');
-- 查看交换前的学生顺序
SELECT * FROM students;
-- 使用查询来交换相邻学生的ID
UPDATE students AS s1
JOIN students AS s2 ON s1.ID = s2.ID - 1
SET s1.ID = s2.ID,
s2.ID = s1.ID + 1;
-- 查看交换后的学生顺序
SELECT * FROM students;
执行以上代码后,我们将得到以下结果:
交换前的学生顺序:
ID | Name |
---|---|
1 | 小明 |
2 | 小红 |
3 | 小华 |
4 | 小李 |
交换后的学生顺序:
ID | Name |
---|---|
2 | 小红 |
1 | 小明 |
4 | 小李 |
3 | 小华 |
可以看到,相邻学生的ID已经被成功交换。