MySQL一次查询更新多行数据

MySQL
一次查询更新多行数据:
例如要更新表中stu_id为11,22,32的学生的成绩为88,90,95,应该如何写UPDATE语句?
UPDATE的一般写法:

UPDATE stu SET stu_score = '88' WHERE stu_id = '1';

这样要更新多行记录就需要写多条更新语句,那么是否可以用一条语句进行更新呢?答案是可以的。
我们可以在SET子语句中加入CASE分支判断:

update stu SET stu_score = CASE id
    WHEN 11 THEN 88
    WHEN 22 THEN 90
    WHEN 33 THEN 95
    END
WHERE id IN(112233);

这样就仅使用一条语句更新了多条记录。

那么如果要更新多行记录的多个字段,例如要更新表中stu_id为11,22,33的学生的成绩和身高分别为88,99,95和170,180,175那么可以使用以下的语句:

update stu SET stu_score = CASE id
    WHEN 11 THEN 88
    WHEN 22 THEN 90
    WHEN 33 THEN 95
    END,
    stu_height = CASE id
    WHEN 11 THEN 170
    WHEN 22 THEN 180
    WHEN 33 THEN 175
    END
 WHERE id IN(112233);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值