使用 if 条件更新 MySQL
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/15001217/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 16:38:50 来源:igfitidea点击:
Update MySQL with if condition
提问by Martina
It seems I have big problems with conditional queries.
看来我对条件查询有很大的问题。
I have to do a conditional update. I write here what I would like to do:
我必须做一个有条件的更新。我在这里写我想做的事情:
IF(SELECT tipo FROM abbonamento WHERE idU = 17) = 'punti' THEN
UDPATE abbonamento SET punti = punti - 1
ELSE
UPDATE abbonamento SET bonus = bonus - 1
Obviously this doesn't work.
Any idea?
显然这行不通。
任何的想法?
回答by John Woo
MySQL
supports IF
statement.
MySQL
支持IF
声明。
UPDATE abbonamento
SET punti = IF(tipo = 'punti', punti - 1, punti),
bonus = IF(tipo <> 'punti', bonus - 1, bonus)
WHERE id = 17
or you can also use CASE
或者你也可以使用 CASE
UPDATE abbonamento
SET punti = CASE WHEN tipo = 'punti' THEN punti - 1 ELSE punti END,
bonus = CASE WHEN tipo <> 'punti' THEN bonus - 1 ELSE bonus END
WHERE id = 17