php开发实战分析(11):mysql中使用update语句使用CASE WHEN
在PHP中使用MySQL UPDATE语句按条件进行更新数据,如果数据表中state字段为0,则更新为1同时更新字段state_time为当前时间的时间戳;如果state字段为1,则更新为0,同时state_time更新为NULL.
// 构造UPDATE语句
$sql = "
UPDATE your_table_name
SET
state = CASE
WHEN state = 0 THEN 1
ELSE 0
END,
state_time = CASE
WHEN state = 0 THEN UNIX_TIMESTAMP(NOW())
ELSE NULL
END
WHERE some_condition; -- Replace with the appropriate condition for selecting records to update
";
$result = $conn->query($sql);
示例说明:
- 使用CASE语句动态设定state字段的新值。当state当前为0时,将其更新为1;否则(即当前为1时),将其更新为0。
- 同样地,对于state_time字段,使用CASE语句基于state字段的当前值设置新值。当state为0时,将state_time更新为当前时间的时间戳(通过UNIX_TIMESTAMP(NOW())获取)。当state为1时,将state_time设为NULL。
- 在UPDATE语句末尾添加适当的WHERE子句以指定需要更新的记录。请根据实际情况替换some_condition部分。
@漏刻有时