본문 바로가기
MySql

MySQL MYSQL WHEN CASE THEN 아무것도하지 않음

by 베이스 공부 2021. 1. 9.
반응형

내가하려는 것은 몇 가지 확인란을 관리하는 데 사용하는 매우 간단한 3 열 데이터베이스에 일부 필드를 설정하는 것입니다.

id가 목록에 있으면 col_2를 1로 설정하고 col_3 상태는 그대로 둡니다. 그러나 id가 목록에 없으면 col_2 및 col_3을 0으로 설정합니다.

이것은 내가 지금까지 가지고있는 것이며, 경고를주고 col_3의 값을 변경했기 때문에 작동하지 않습니다.

UPDATE t 
SET col_2 =
 CASE         
    WHEN id IN (list) THEN 1
    WHEN id NOT IN (list) THEN  0
 END,
col_3 = 
 CASE
    WHEN id NOT IN (list) THEN 0
 END
WHERE id IS NOT NULL;

감사합니다 :)

 

해결 방법

 

이것은 col_3을 그대로 두는 방법입니다.

UPDATE t 
SET col_2 =
 CASE         
    WHEN id IN (list) THEN 1
    WHEN id NOT IN (list) THEN  0
 END,
col_3 = 
 CASE
    WHEN id NOT IN (list) THEN 0
    ELSE col_3 --this
 END
WHERE id IS NOT NULL;

귀하의 경고에 관한 정보가 충분하지 않습니다.

 

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

 

 

반응형

댓글