2016-07-10 7 views
0

私に割り当てられています。システムは、NULLの場合にのみ列datetimeを更新する必要があります。datetimeがNULLの場合のみ、mysqliを更新してください。

私はこのクエリ

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

が、これは、これを行うための正しい方法は何ですか?他のどんな良いソリューションですか?

答えて

0

あなたのロジックは問題ありません。

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

注:

  • IDが数値である場合は、単一引用符で値を入れていない私は、としてより簡潔に書くかもしれません。
  • さらに重要なことに、$name$postidは、クエリ文字列に直接挿入するのではなく、クエリのパラメータにする必要があります。
関連する問題