如何在MySQL中使用if语句

时间:2018-09-22 04:06:11

标签: php mysql pdo

如果durasi_pre_u的基本值大于0,我想从durasi_pre_u减去1(-1)值,并在Premium时将Member更新为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上的教程

2 个答案:

答案 0 :(得分:1)

您的查询中有一个错误,首先,您只想在pangkat_u的当前值为1(因此即将更改为0)时更改durasi_pre_u的值,因此您需要将<>更改为=。其次,将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)

答案 1 :(得分:0)

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)