你是不是遇到过这种情况:
老师给你出了一道题,让你更新数据库,让你根据某个表中的某个字段来对一个新的字段赋值,比如:
一个表中有一群美女的年龄,微信,手机号,胸围,腰围,臀围,还有身材等级。在这个表中,身材等级还没有填,老师让你根据它们的三围来填身材等级。胸围84厘米,腰围61厘米,臀围90厘米是标准的三围。如果胸围大于84cm 、 腰围小于61cm 、臀围大于90cm 则称为身材好。 如果胸围小于84cm 、腰围大于61cm 、臀围小于90cm 则称为身材一般。 如果胸围等于84cm 、腰围等于61cm 、臀围等于90cm 则称为身材良好。其余情况不考虑(这标准是我自己定的,别说我。。。。)
????
这怎么更新????
我只学过update 表名 set 字段名1=值1,字段名2=值2... where 条件;
没关系,我来告诉你如何做!
当然我们不按照上述例子来做,因为毕竟我没有那么多美女的微信手机号和三围(哭~~)
填写SC表中的成绩等级rank字段,按60分以下为E,60-69为D,70-79为C,80-89为B,90及以上为A,其它情况为NULL。填写SC表中的成绩等级rank字段,按60分以下为E,60-69为D,70-79为C,80-89为B,90及以上为A,其它情况为NULL。
这是原始表这是我们要的结果
update sc set rank = case
#when 条件 then 值 (当满足条件时,这个值直接赋给case)
when sc.grade <60 then 'E'
when sc.grade >=60 and sc.grade <70 then 'D'
when sc.grade >=70 and sc.grade<80 then 'C'
when sc.grade >=80 and sc.grade<90 then 'B'
when sc.grade >=90 then 'A'
#NULL不等于 “” 也不等于“NULL”
else NULL
end
这里有几点需要注意 :
1、在不同的情况之间不需要加逗号。
2、在mysql中NULL值一定要直接写 不要放在引号内,那样会被成字符串
3、一定要写end
到这里我们就可以言归正传了,身材等级怎么填?你会了吗?