2016-07-10 14 views
0

Ich habe eine Aufgabe. System sollte die Spalte datetime nur aktualisieren, wenn es null ist.Update mysqli nur wenn datetime null ist

Ich habe diese Abfrage

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

ist dies der richtige Weg, dies zu tun? eine andere bessere Lösung?

Antwort

0

Ihre Logik ist in Ordnung. Ich könnte dies mehr schreiben prägnant:

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

Hinweise:

  • Wenn die IDs numerisch sind, setzen Sie nicht den Wert in einfache Anführungszeichen.
  • Noch wichtiger, $name und $postid sollten Parameter für die Abfrage sein, anstatt direkt in die Abfragezeichenfolge eingefügt werden.
Verwandte Themen