CASE WHEN/ THEN/ ELSE를 사용한 대량 업데이트 구문은 다음과 같습니다. -
yourTableName이 yourColumnName=Value1일 때 yourColumnName=case를 설정한 다음 yourColumnName=Value2일 때 anyUpdatedValue2를 설정한 다음 yourColumnName=Value3일 때 anyUpdatedValue3을 설정하고 yourColumnName=Value4일 때 anyUpdatedValue4else yourColumnNameend를 업데이트하세요.
위의 구문을 이해하기 위해 먼저 테이블을 생성하겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -
mysql> 테이블 생성 CaseUpdateDemo-> (-> Id int,-> Name varchar(100)-> );쿼리 OK, 영향을 받는 행 0개(0.78초)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -
mysql> Insert into CaseUpdateDemo values(1,'John');Query OK, 1행 영향(0.17초)mysql> Insert into CaseUpdateDemo values(2,'Carol');Query OK, 1행 영향(0.27초) )mysql> CaseUpdateDemo 값에 삽입(3,'Mike');쿼리 OK, 1행 영향(0.11초)mysql> CaseUpdateDemo 값에 삽입(4,'Bob');쿼리 OK, 1행 영향(0.15초)사전>select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> *CaseUpdateDemo에서 선택;출력
+------+-------+| 아이디 | 이름 |+------+-------+| 1 | 존 || 2 | 캐롤 || 3 | 마이크 || 4 | 밥 |+---+-------+세트의 행 4개(0.00초)이제 위에서 설명한 쿼리를 작성하여 Case WHEN THEN ELSE로 열 ID를 업데이트할 수 있습니다. 쿼리는 다음과 같습니다 -
mysql> update CaseUpdateDemo set Id=case 일 때 Id=1 다음 1001-> Id=2 일 때 1002-> Id=3 일 때 그 다음 1003-> Id=4 일 때 그 다음 1004-> else Id-> end;Query 알겠습니다. 4개 행이 영향을 받았습니다(0.15초). 일치하는 행:4개 변경됨:4개 경고:0이제 select 문을 사용하여 ID 열에 대해 테이블이 업데이트되었는지 확인할 수 있습니다. 쿼리는 다음과 같습니다 -
mysql> 선택 *CaseUpdateDemo;출력
+------+-------+| 아이디 | 이름 |+------+-------+| 1001 | 존 || 1002 | 캐롤 || 1003 | 마이크 || 1004 | 밥 |+------+-------+4행 세트(0.00초)