首页 > 解决方案 > 如何在mysql中使用if语句

问题描述

durasi_pre_u如果durasi_pre_u基本值大于 0,我想减去 1 (-1) 值并更新Premium到值 = 0Member时。durasi_pre_u

我在这里尝试

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)

此代码工作 -1durasi_pre_u但不工作更改PremiumMember

我尝试按照本网站的教程https://www.w3resource.com/mysql/control-flow-functions/if-function.php

标签: phpmysqlpdo

解决方案


您的查询中有错误,首先您只想更改pangkat_u当前值为durasi_pre_u1 时的值(因此即将更改为 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)

推荐阅读