Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL CASE는 어떻게 작동합니까?


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초)