MySQL一次查询更新多行数据

来源:互联网 发布:linux版本查看 编辑:程序博客网 时间:2024/03/29 00:28

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    ENDWHERE 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);