仅当新值大于列中的现有值时,如何更新行?

时间:2014-01-24 06:35:08

标签: mysql sql database sql-update

我目前正在申请代码:

date = obj->execute("SELECT date FROM table WHERE id=123");  
if(date < someDate) {  
    obj->executeUpdate("UPDATE table set date=? where id=123",someDate);  
}  

即。我只在行中更新date,如果它小于我的应用程序中的某个新日期变量 有没有办法在SQL中直接执行此操作?
例如。类似的东西:

UPDATE table  
set date = IF(date < ?, date, ?) where id = 123

任何有效的,无论准备好的陈述

2 个答案:

答案 0 :(得分:0)

UPDATE table SET date=value WHERE date<value AND id=123;

答案 1 :(得分:0)

只需添加where条件:

UPDATE table SET date = ? WHERE ID = 123 AND date < ?;