在PHP中使用MySQL UPDATE语句按条件进行更新数据,如果数据表中state字段为0,则更新为1同时更新字段state_time为当前时间的时间戳;如果state字段为1,则更新为0,同时state_time更新为NULL.
// 构造UPDATE语句
$sql = "UPDATE your_table_nameSET state = CASE WHEN state = 0 THEN 1ELSE 0END,state_time = CASE WHEN state = 0 THEN UNIX_TIMESTAMP(NOW())ELSE NULLENDWHERE 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部分。
@漏刻有时