mysql更新表为null

时间:2018-01-31 12:49:07

标签: php mysql

你好花了很多时间寻找教程或回答我的更新查询。这是一个时间跟踪系统

表就像

| id | emp_nr | start_time          | end_time |

|  1 |    47  | 2018-01-31 13:15:10 |  NULL    |

此查询适用于更新,但需要帮助,因为无论如何都会更新 因为它在同一天内并且没有移动到新的字段或返回错误。

UPDATE time SET end_time='$date' 
WHERE  DATE(`start_time`) = CURDATE() AND `emp_nr`=$emp_nr";

我想使用当前时间更新end_time字段,如果它是NULL且在过去12小时内。如果发生日期更改,则根本不会更新并返回值" "

我在这里寻求一些建议,我有点困惑。我已经完成了一些阅读" ON Duplicate Key"或者更新查询是否应该更多地指向" IF / THEN / ELSE"?

2 个答案:

答案 0 :(得分:1)

使用:

UPDATE time SET end_time='$date' 
WHERE  DATE(`start_time`) = CURDATE() AND `emp_nr`=$emp_nr AND end_time IS NULL;

答案 1 :(得分:0)

您需要在where子句中再添加一列以检查end_time IS NULL。 例如 -

UPDATE time SET end_time='$date' 
    WHERE  DATE(`start_time`) = CURDATE() AND `emp_nr`=$emp_nr 
       AND end_time IS NULL";