如何在mysql中使用if语句

new9mtju  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(240)

我想从中减去1(-1)值 durasi_pre_u 如果 durasi_pre_u 基本值大于0并更新 PremiumMember 什么时候 durasi_pre_u 值为0。
这是我要做的

UPDATE user 
SET durasi_pre_u = IF(durasi_pre_u > 0, durasi_pre_u - 1, durasi_pre_u), 
pangkat_u = IF(durasi_pre_u <> 1 AND pangkat_u = 'Premium', pangkat_u = 'Member', pangkat_u)

此代码正在工作-1 durasi_pre_u 但不是工作的改变 PremiumMember 我试着遵循这个网站的教程https://www.w3resource.com/mysql/control-flow-functions/if-function.php

lndjwyie

lndjwyie1#

If 函数,您只需要指定在true或false情况下要设置的值。不要指定字段名=值( pangkat_u = 'Member' )
使用以下选项:

UPDATE user 
SET durasi_pre_u = IF(durasi_pre_u > 0, durasi_pre_u - 1, durasi_pre_u), 
pangkat_u = IF(durasi_pre_u <> 1 AND pangkat_u = 'Premium', 'Member', pangkat_u)
dvtswwa3

dvtswwa32#

您的查询有一个错误,首先您只想更改 pangkat_udurasi_pre_u 是1(因此它将更改为0),因此需要更改 <>= . 其次你有 pangkat_u = 'Member' 作为新值,mysql将其视为布尔表达式(即值1或0)。你真正想要的只是 'Member' . 所以你的问题应该是:

UPDATE user 
SET durasi_pre_u = IF(durasi_pre_u > 0, durasi_pre_u - 1, durasi_pre_u), 
pangkat_u = IF(durasi_pre_u = 1 AND pangkat_u = 'Premium', 'Member', pangkat_u)

相关问题