mysql - 反转表内容的 SQL 查询

标签 mysql sql sql-update

我有一个名为 Color_Table 的表,它只有一个字段 Color,其内容是:
蓝色
蓝色
蓝色
红色
现在我必须更新此表的内容,以便所有具有 Color = Blue 的记录都更改为 Color = Red反之亦然。更新后的表格将如下所示:
红色
红色
红色
蓝色
这是我做的
更新 Color_Table 设置颜色 = "TempRed" WHERE Color = "蓝色";

更新 Color_Table 设置颜色=“蓝色” WHERE Color = "红色";

更新 Color_Table 设置颜色 = "红色" WHERE Color = "TempRed";

有没有其他地方我们可以使用更少的查询并且没有额外的空间来做到这一点?

最佳答案

您可以在单个更新 中执行此操作:

update color_table
    set color = (case when color = 'Blue' then 'Red'
                      when color = 'Red' then 'Blue'
                 end)
    where color in ('Blue', 'Red');

关于mysql - 反转表内容的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33101369/

相关文章:

php - 是否可以使用(使用 PHP)先前在 mysql CLI 中声明的准备好的语句?

php - 错误号 : 1064 in codeigniter

sql - 使用 CASE 和 IN 进行更新 - Oracle

java - java代码中的SQL错误 "Column count doesn' t匹配第1行的值计数“

mysql - 触发器以防止在表上删除

mysql - 无法忽略 sql 中的值

sql - 个人和团体注册的数据库设计

MySQL 5.6 - 类似 DENSE_RANK 的功能,没有 Order By

database - MongoDB 中的 findAndModify 和 update 有什么区别?

php - MySQL SET 查询 (x = x - y)