仅当datetime为null时才更新mysqli

时间:2016-07-10 15:33:37

标签: mysql sql-update

我有一项任务。系统应仅在列为datetime时更新列日期时间。

我有这个查询

update posts set name = '$name', pubdate = case when pubdate is null 
then now()
else pubdate end 
where id = '$postid'

这是正确的方法吗?还有其他更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

你的逻辑很好。我可以更简洁地写出:

update posts
    set name = '$name',
        pubdate = coalesce(pubdate, now())
    where id = '$postid';

注意:

  • 如果ID是数字,请不要将值放在单引号中。
  • 更重要的是,$name$postid应该是查询的参数,而不是直接插入查询字符串。