2014-07-25 2 views
1

저는 정말 간단한 프로젝트 관리자 프로그램을 만들었으므로 mysql을 사용하는 법을 배우고 있습니다. 사용자가 프로젝트에서 자신의 작업을 보았다면 추적하고 싶었습니다. 그래서 프로젝트가 사용자에 의해 쿼리 될 때 제출 된 user_seen_task 업데이트하려면하지만 분명히 이미 설정되지 않은 경우에만이 필드를 업데이트하려는. IF 문을 사용하는 mysql 업데이트 쿼리

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
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를 업데이트 할 필요가없는 경우, 당신의 where 절에

AND user_seen_task_date IS NULL 

를 추가

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 
+0

매우가 완벽하게 작동되어 주셔서 감사합니다 – Wermerb