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

我有这个查询

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


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

最佳答案

你的逻辑很好。我可以这样写得更简洁:

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


笔记:


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

关于mysql - 仅当datetime为null时更新mysqli,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38293527/

10-14 00:35