반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL 트리거를 대량으로 변경하는 방법 DEFINER (0) | 2020.12.24 |
---|---|
MySQL PHP에서 SQL 변수를 바인딩하는 방법은 무엇입니까? (0) | 2020.12.24 |
MySQL com.mysql.jdbc.Driver 설치 방법 "클래스 이름이 com.mysql.jdbc.Driver 인 드라이버를 찾을 수 없습니다"? (0) | 2020.12.23 |
MySQL 사용자 정의 함수 (0) | 2020.12.23 |
MySQL PhpMyAdmin에서 모니터링 (0) | 2020.12.23 |
댓글