MySQL 一条SQL同时UPDATE多条记录

普通的UPDATE语句用来更新一条数据。

UPDATE tableNmae SET columnName = value WHERE columnName = otherValue;

扩充条件的UPDATE语句可以用来更新多条数据,但是只能用来设置相同的值。

UPDATE tableNmae SET columnName = value WHERE columnName IN (otherValue1, otherValue2);
当然还有其他写法,这里只是举个例子。

使用一条UPDATE语句更新多条数据并且分别设置各自的值。
UPDATE tableName SET
    column1 = CASE column2
        WHEN column1Value1 THEN column2Value1
        WHEN column1Value2 THEN column2Value2
        WHEN column1Value3 THEN column2Value3
    END
WHERE column2 IN (column2Value1, column2Value2, column2Value3)

首先要使用IN限定修改的数据,不使用IN的话在此语句中未进行设置值的会变成NULL或者默认值。
该语句会将column2值为相应column2Value的数据column1字段修改为对应的column1Value

UPDATE tableName SET
    column1 = CASE column2
        WHEN column1Value1 THEN column2Value1
        WHEN column1Value2 THEN column2Value2
        WHEN column1Value3 THEN column2Value3
    END,
    column3 = CASE column2
        WHEN column3Value1 THEN column2Value1
        WHEN column3Value2 THEN column2Value2
        WHEN column3Value3 THEN column2Value3
    END
WHERE column2 IN (column2Value1, column2Value2, column2Value3)

转载文章MySQL批量更新数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值