使用IF语句进行Mysql更新查询

时间:2014-07-25 10:08:58

标签: mysql

我正在学习使用mysql,所以我创建了一个非常简单的项目经理程序。 我想跟踪用户是否在项目中看到了她/他的任务。所以我想在用户查询项目时更新user_seen_task字段,但显然我只想更新此字段(如果尚未设置)。

这是我的方法:

UPDATE task 
SET user_seen_task = 1, user_seen_task_date = NOW() 
WHERE project_id = 14 AND user = 4 AND user_seen_job != 1

不幸的是,每次运行时,此查询都会更新user_seen_task_date。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

UPDATE task 
SET user_seen_task = 1
    , user_seen_task_date = CASE 
                               WHEN  user_seen_task_date IS NULL THEN NOW() 
                               ELSE user_seen_task_date 
                            END 
WHERE project_id = 14 
AND user = 4 
AND user_seen_job != 1

或者如果在这种情况下不需要更新user_seen_task,只需添加

AND user_seen_task_date IS NULL 

进入你的where子句

UPDATE task 
     SET user_seen_task = 1, user_seen_task_date = NOW() 
WHERE project_id = 14 AND user = 4 AND user_seen_job != 1
AND user_seen_task_date IS NULL