使用IF语句更新MYSQL


Update MYSQL with IF statement?

我想更新我的MYSQL表,但有一个条件。

我有一个状态字段和一个时间字段。如果status=day,则不使用当前时间更新时间字段。如果status=night,则使用当前时间更新时间字段。

现在,我正在对PHP中的返回值执行SELECT语句,然后执行if语句,然后进行UPDATE并更改除时间之外的所有字段,除非status=night。有可能在一个命令中完成这一切吗?


编辑:

抱歉,只是澄清一下:

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'"
}
UPDATE table
SET field1 = val1, time=IF(status="night",NOW(),time), field3= val3;

这应该做到:

UPDATE `table` SET `time` = NOW() WHERE `status` = `night`