mysql - 更新查询SQL来更新表的各个字段?

标签 mysql sql sql-server database

这是我的 table :

id    delivery_mode    old_delivery_mode

123   email             sms
126   sms               sms
139   email            facebook
147   facebook          email
198    sms               sms
210   sms               email

我想用这些值更新我的表字段值:

 sms=100
 email=200
 facebook=300

这样:

id    delivery_mode    old_delivery_mode

123   200               100
126   100               100
139   200               300
147   300               200
198   100               100
210   100               200

我想在单个 SQL 查询中执行此操作。

我该怎么做?

最佳答案

UPDATE  YOUR_TABLE_NAME
SET     delivery_mode =
        CASE
            WHEN delivery_mode = 'sms' THEN '100'
            WHEN delivery_mode = 'email' THEN '200'
            WHEN delivery_mode = 'facebook' THEN '300'
           WHEN delivery_mode THEN delivery_mode
        END,
     old_delivery_mode =
        CASE
            WHEN old_delivery_mode = 'sms' THEN  '100'
            WHEN old_delivery_mode = 'email' THEN '200'
            WHEN old_delivery_mode = 'facebook' THEN '300'
        WHEN old_delivery_mode THEN old_delivery_mode
        END

关于mysql - 更新查询SQL来更新表的各个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074472/

相关文章:

sql - 使用 group by 和步骤/范围对大数据进行查询

python - 在 mysql 数据库中存储 python time.struct_time 的最佳方法

python - 如何使用 python 从 MySql 表循环解析模式

php - 如何管理空 IN sql 查询?

sql - 根据先前行的标准创建和索引计数行

SQL从临时表插入表,并将输出插入临时表

MySQL:条件连接不显示用于计算纬度/经度之间距离的所有数据

php - 使用BLOB VS OS文件系统mysqlt二进制存储: large files,大量,大问题

sql - 如何选择前 5 名,然后选择以下 5 名?

sql-server - SQL - 确定列中最常出现的单词