场景:
mysql
系统运行了一段时间后,好多用户消费,须要在表中对用户进行等级更新,咱们的需求是:sql
一、只对超过平均消费金额的用户进行等级升级ide
二、达到平均消费金额 1倍的用户 等级是 白金用户it
三、2倍或以上的是黄金用户class
四、其余一概是吃瓜用户date
mysql 里面的case when:select
case 查询
when 表达式 then表达式 di
else 表达式时间
end
每每用于select 查询时 对字段进行特殊条件处理
update user_level,(select avg(user_total) as avg from user_level) b set user_rank=
case
when round(user_total/avg)>=1 and round(user_total/avg)<2 then '白金用户'
when round(user_total/avg)>=2 then '黄金用户'
ELSE
'吃瓜'
end where user_total>=b.avg