我有来自表Z的数据
+------+-------+-------+
| id | Data | index |
+------+-------+-------+
| 1 | A | 1 |
| 2 | B | 2 |
| 3 | C | 3 |
+------+-------+-------+
,然后将位置索引1更改为3,将3更改为1。 在这种情况下如何查询更新?如果运行条件索引为1并将值设置为3的查询,下一个条件索引3并将值设置为1?结果更新ID 1和3值索引3。
答案 0 :(得分:0)
使用CASE
表达式:
UPDATE yourTable
SET `index` = CASE WHEN `index` = 1 THEN 3 ELSE 1 END
WHERE `index` IN (1, 3);
但是请注意,index
是保留的MySQL关键字,这就是为什么我不得不在上述查询中将其放在反引号中的原因。您应该避免使用保留关键字在MySQL中命名对象。