SQL - update更新一个字段的一些数据为同一个值

问题:一个表批量修改部分记录为同一个值

相关问题:一堆state只允许一个为1,其他全为0。

比如:数据库score 表只许一条记录的major的值为123,这一条记录的id为1,其他的major的值都为bbbb

解决:

update score set major = (case when stu_id = '1' then '123' else 'bbbb' end)

注意:

如果需要其他值不变或限定的范围内修改,需要自己写where限定条件!否则其他所有值都会变成else设定的值!

其他:

不能不写end,否则语法错误;不能不写else,否则其他的记录都会变为空;可以在when条件后面写and加条件;可以在句末写where条件

stu_id = '1' then '123' 这样的条件和设置值也可以写多个。

MySQL和SqlServer都能用。

你可能感兴趣的:(sql)