mysql case when then 有相同值问题
本文介绍了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屋!
查看全文