我有来自表 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。
最佳答案
使用CASE
表达式:
UPDATE yourTable
SET `index` = CASE WHEN `index` = 1 THEN 3 ELSE 1 END
WHERE `index` IN (1, 3);
但请注意,index
是 MySQL 的保留关键字,这就是为什么我必须在上面的查询中将其放在反引号中。您应该避免使用保留关键字在 MySQL 中命名对象。
关于mysql - 更新条件以更改索引行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51033619/