2010-10-05 50 views
2

我有MySQL的IF然後設置

* PwdSettings具有-50值的表(這是說50天)

* PwdDate(這是上一次更新日期)

* EXPDATE(這是0或1,如果密碼是舊的,我需要將其設置爲1)

我想編寫一個查詢說「如果PwdDate是< PwdSettings然後設置ExpDate = 1「

這是我迄今爲止嘗試過,一切都會引發錯誤。

UPDATE wp_users SET ExpDate = 1 WHEN PwdDate < DATE_ADD(CURDATE(), INTERVAL -50 DAY) WHERE user_email='[email protected]' 

UPDATE wp_users SET ExpDate = 1 WHERE user_email='[email protected]' IF(PwdDate < DATE_ADD(CURDATE(), INTERVAL -50 DAY)) 

IF PwdDate < DATE_ADD(CURDATE(), INTERVAL -50 DAY) WHERE user_email='[email protected]' THEN SET ExpDate = 1 

回答

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) 
0

把額外的條件在WHERE子句中:

UPDATE wp_users 
SET ExpDate = 1 
WHERE user_email='[email protected]' 
AND PwdDate < CURDATE() - INTERVAL 50 DAY 
1

這裏是如何我做的。

UPDATE wp_users 
SET ExpDate = IF(PwdDate <= DATE_ADD(CURDATE(), INTERVAL PwdSettings DAY), 1, 0) 
WHERE user_email='[email protected]'