mysql case when then 有相同值问题

查看:340
本文介绍了mysql case when then 有相同值问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

UPDATE tb_drugs_stock
SET drug_nums = drug_nums - CASE id
WHEN 9170 THEN

0

WHEN 9170 THEN

20

END
WHERE

id IN (9170)

如上代码,在执行的时候,更新条数为0,后面的为何不执行了

解决方案

先执行SELECT * FROM tb_drugs_stock WHERE id IN (9170)试试看。

如果SELECT不出来,当然是0。如果SELECT出来有结果,那么再看你UPDATE的内容:

drug_nums = drug_nums - CASE id WHEN 9170 THEN 0 WHEN 9170 THEN 20 END

后面这个CASE求值,结果是0,所以UPDATE ... SET drug_nums = drug_nums - 0就应该不会影响数据变更。

这篇关于mysql case when then 有相同值问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆