MYSQLテーブルを更新したいのですが、条件付きです。
ステータスフィールドと時間フィールドがあります。status = dayの場合、時刻フィールドを現在の時刻で更新しないでください。status = nightの場合、時刻フィールドを現在の時刻で更新します。
現在、私はSELECTステートメントを実行してからPHPの戻り値に対してifステートメントを実行し、次にUPDATEを実行して、status=nightでない限り時刻を除くすべてのフィールドを変更しています。これをすべて1つのコマンドで実行することは可能ですか?
編集:
申し訳ありませんが、明確にするために:
WHEREコマンドは、status=nightの場合にのみ行を更新します。行内のすべてのフィールドを常に更新したいのですが、status=nightの場合にのみ時間フィールドを更新します。status = dayの場合、時間フィールドを除く行全体を更新します。
コード:
if($status=="night") {
$query = "UPDATE post SET name="$name", comment="$comment", status="$status", time="{now()}" WHERE id='$id'";
} else {
$query = "UPDATE post SET name="$name", comment="$comment", status="$status" WHERE id='$id'"
}