如果 durasi_pre_u
的基本值大于 0,我希望从 durasi_pre_u
中减去 1 (-1) 值,并将 Premium
更新为 成员
,当 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
但不工作将 Premium
更改为 Member
我尝试遵循此网站的教程 https://www.w3resource.com/mysql/control-flow-functions/if-function.php
最佳答案
您的查询有错误,首先您只想更改 pangkat_u
的值当durasi_pre_u
的当前值是1(因此即将变为0),因此您需要更改<>
至=
。其次你有 pangkat_u = 'Member'
作为新值,MySQL 将其视为 bool 表达式(即值 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)
关于php - mysql中if语句的使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52453394/