본문 바로가기
MySql

MySQL Null이 아닌 경우 필드 업데이트

by 베이스 공부 2020. 12. 24.
반응형

id = xx 인 필드 x, y 및 z를 업데이트하는 업데이트 문이 있습니다.

표에는 몇 가지 x_created_datetime 필드가 있습니다 (다른 사람이 유지 / 입력하는 레코드의 다른 부분에 대해). 이 필드가 null 인 경우 업데이트하는 단일 쿼리를 작성하고 null이 아닌 경우에는 그대로 두십시오.

그래서 내가 가진 것은 :

UPDATE newspapers
SET scan_notes = "data",
    scan_entered_by = "some_name",
    scan_modified_date = "current_unix_timestamp"
WHERE id = X

내가 필요한 것은 다음을 추가하는 방법이지만 여전히 위의 내용을 항상 업데이트합니다.

scan_created_date = "current_unix_timestamp"
where scan_created_date is null

DB에 대한 두 번째 트랜잭션없이이 작업을 수행 할 수 있기를 바랍니다. 이를 수행하는 방법에 대한 아이디어가 있습니까?

 

해결 방법

 

이 작업을 수행:

UPDATE newspapers
SET scan_notes = "data",    
  scan_entered_by = "some_name",    
  scan_modified_date = "current_unix_timestamp",
  scan_created_date = COALESCE(scan_created_date, "current_unix_timestamp")
WHERE id = X

COALESCE 함수는 널이 아닌 첫 번째 값을 선택합니다. 이 경우 날짜 스탬프 scan_created_date가 존재하는 경우 동일한 값이되도록 업데이트합니다.

 

참조 페이지 https://stackoverflow.com/questions/1860216

 

 

반응형

댓글