mysql 按照条件更新字段

按照条件update 字段

比如有这种场景
用户消耗分数,有两个字段 标记分数 一个是每日的免费分数 free_score
另一个是积累分数 total_score
如果 free_score > 0 , 优先使用 free_score
如果 free_score = 0,则使用 total_score
更新语句如下

update card_integral t
set 
  t.total_score = if(t.free_score = 0 and t.total_score > 0,t.total_score - 1,t.total_score) ,
  t.free_score = if(t.free_score > 0 , t.free_score - 1,t.free_score) 
where t.id = 1

set 两个 字段的顺序不能颠倒,
否则 会出现 修改了 free_score 为0 后 , 又去 修改 total_score 的bug

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,857评论 5 116
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,254评论 0 7
  • 一. Java基础部分.................................................
    wy_sure阅读 3,837评论 0 11
  • 删掉重新来一次吧,记得改那个脚本修改 /home/ubuntu/eos/scripts/install_depen...
    卢衍泓阅读 1,198评论 0 1
  • 睡前讲完故事,去洗手间刷牙、尿尿,准备睡觉。在洗手间到房间的时候看到爸爸坐在沙发上看书。 爸爸手勾一勾,彧哥哥整个...
    爱读书妈妈双姗阅读 425评论 0 49