我有任务系统应仅在列日期时间为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/