[mysql] SQL은 한 열의 값을 동일한 테이블의 다른 열의 값과 동일하게 설정합니다.

두 개의 DATETIME 열이있는 테이블이 있습니다.

그들 중 하나는 NULL이 아니지만 그중 하나는 때때로 NULL입니다.

B 열의 모든 NULL 행을 A 열의 값과 동일하게 설정하는 쿼리를 작성해야합니다.

이 예제를 시도했지만 MySQL Workbench가 UPDATE의 FROM을 좋아하지 않기 때문에 선택한 답변의 SQL 실행되지 않습니다.



답변

하나의 테이블에서 작업하는 것처럼 들리므로 다음과 같습니다.

update your_table
set B = A
where B is null


답변

UPDATE YourTable
SET ColumnB=ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL


답변

나는 이렇게 할 것이다 :

UPDATE YourTable SET B = COALESCE(B, A);

COALESCE는 널이 아닌 첫 번째 인수를 리턴하는 함수입니다.

이 예에서 지정된 행의 B가 null이 아닌 경우 업데이트는 작동하지 않습니다.

B가 널이면 COALESCE는이를 건너 뛰고 대신 A를 사용합니다.


답변

나는 다른 예가 당신이 찾고있는 것이라고 생각하지 않습니다. 같은 테이블의 다른 열에서 한 열을 업데이트하는 경우 이와 같은 것을 사용할 수 있어야합니다.

update some_table set null_column = not_null_column where null_column is null


답변

다음은 A 열을 B 열로 처리하는 데 도움이 될 수있는 샘플 코드입니다.

UPDATE YourTable
SET ColumnB = ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL;


답변