2016-03-14 113 views
1

列值我想更新列EXPIRY_DATE只有在已經存儲EXPIRY_DATE小於新EXPIRY_DATE如何實現這一目標是MySQL的MySQL的:改變基於列的前值

update tbl_user 
    set 
    email="[email protected]' 
    currency="USD" 
    expiry_date=DATE_ADD(NOW(), INTERVAL ".$expiry_date." MONTH) 
    where user_id=1 

在此先感謝

+0

請參見最大(或WHERE,我猜) – Strawberry

回答

2

試試這個使用CASE

update tbl_user 
set 
email='[email protected]' 
currency='USD' 
expiry_date= CASE WHEN expiry_date < 'UR NEW DATE' 
         THEN DATE_ADD(NOW(), INTERVAL ".$expiry_date." MONTH) 
        ELSE expiry_date 
       END  
where user_id=1 
+0

您好兄弟,感謝您的回答,我可以在expiry_date <'UR NEW DATE'時將案件更改爲CASE當expiry_date

+1

@SugumarVenkatesan'UR NEW DATE''可以代替比較值。如果你的新日期值是'DATE_ADD(NOW(),INTERVAL)。$ expiry_date。「MONTH)'那麼它是可以被替換的 –

1

由於@Strawberry評論,GREATEST應該工作:

update tbl_user 
set 
email="[email protected]' 
currency="USD" 
expiry_date=GREATEST(expiry_date, DATE_ADD(NOW(), INTERVAL ".$expiry_date." MONTH)) 
where user_id=1