我正在学习使用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。
非常感谢任何帮助。
答案 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