MySQL如果那么设置

时间:2010-10-05 19:34:50

标签: mysql sql database sql-update

我有一张表

* PwdSettings ,其值为-50(即50天)

* PwdDate (这是上次更新的日期)

* ExpDate (如果密码为旧,则为0或1,我需要将其设置为1)

我正在尝试写一个查询,说“如果PwdDate是< PwdSettings然后SET ExpDate = 1”

这是我到目前为止所尝试的,一切都会引发错误。

UPDATE wp_users SET ExpDate = 1 WHEN PwdDate < DATE_ADD(CURDATE(), INTERVAL -50 DAY) WHERE user_email='dylan@wccit.com'

UPDATE wp_users SET ExpDate = 1 WHERE user_email='dylan@wccit.com' IF(PwdDate < DATE_ADD(CURDATE(), INTERVAL -50 DAY))

IF PwdDate < DATE_ADD(CURDATE(), INTERVAL -50 DAY) WHERE user_email='dylan@wccit.com' THEN SET ExpDate = 1

3 个答案:

答案 0 :(得分:1)

使用:

UPDATE wp_users 
   SET ExpDate = 1 
 WHERE PwdDate < DATE_ADD(CURDATE(), INTERVAL -50 DAY) 

...或者,使用DATE_SUB:

UPDATE wp_users 
   SET ExpDate = 1 
 WHERE PwdDate < DATE_SUB(CURDATE(), INTERVAL 50 DAY) 

答案 1 :(得分:1)

我是这样做的。

UPDATE wp_users 
SET ExpDate = IF(PwdDate <= DATE_ADD(CURDATE(), INTERVAL PwdSettings DAY), 1, 0)
WHERE user_email='myEmail@domain.com'

答案 2 :(得分:0)

将额外条件放在WHERE子句中:

UPDATE wp_users
SET ExpDate = 1
WHERE user_email='dylan@wccit.com'
AND PwdDate < CURDATE() - INTERVAL 50 DAY