MySQL CASE는 switch 문처럼 작동합니다. CASE 구문은 다음과 같습니다 -
사례 1 - 비교문
anyCompareStatement 다음 value1 when anyCompareStatement 다음 value2..Nelse anyValueend as anyVariableName;
사례 2 - 조건
두 번째 구문은 하나의 열만 선택할 때 사용할 수 있습니다. 구문은 다음과 같습니다 -
case yourColumnName when condition1 then result1when condition1 then result2..Nelse anyValueend;
위의 개념을 이해하기 위해 select 문을 사용하겠습니다.
사례 1
쿼리는 다음과 같습니다 -
mysql> select -> case when 45 <55 then '55는 45보다 큼' -> when 10!=11 then '10은 11과 같지 않음' -> else 'Default case' -> end as Result;
출력
+-----------------------+| 결과 |+-----------------------+| 55는 45보다 큼 |+-----------------------+1 행 세트(0.00초)
사례 2
두 번째 구문을 이해하기 위해 표를 만들어 보겠습니다.
테이블을 생성하는 쿼리는 다음과 같습니다 -
mysql> 테이블 생성 CaseDemo -> ( -> Id int, -> Name varchar(100) -> );쿼리 OK, 영향을 받는 행 0개(0.93초)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -
mysql> Insert into CaseDemo values(1,'John');Query OK, 1행 영향(0.43초)mysql> Insert into CaseDemo values(2,'Sam');Query OK, 1행 영향(0.16초) )
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> *CaseDemo에서 선택;
출력
+------+------+| 아이디 | 이름 |+------+------+| 1 | 존 || 2 | Sam |+------+------+2행 세트(0.00초)
다음은 하나의 값으로만 작업할 수 있는 CASE의 두 번째 쿼리입니다. 쿼리는 다음과 같습니다 -
mysql> 케이스 이름 선택-> 'John'일 때 '그의 이름은 John'-> 'Sam'일 때 '그의 이름은 Sam'-> else -1-> CaseDemo에서 결과로 종료->사전>출력
+------------------+| 결과 |+------------------+| 그의 이름은 존 || 그의 이름은 Sam입니다 |+------------------+2행 세트(0.00초)