用IF语句更新MYSQL?

时间:2012-09-04 19:52:00

标签: php mysql

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

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

现在,我正在执行SELECT语句,然后在PHP中返回值的if语句,然后执行UPDATE并更改除time = night之外的所有字段。是否可以在一个命令中完成所有操作?


编辑:

抱歉,只是为了澄清:

如果status = night,WHERE命令将仅更新行。我总是希望更新行中的所有字段,但只有在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'"
}

2 个答案:

答案 0 :(得分:5)

UPDATE table
SET field1 = val1, time=IF(status="night",NOW(),time), field3= val3;

答案 1 :(得分:0)

这应该这样做:

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