Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 ENUM('M','F') 값을 '남성' 또는 '여성'으로 변환해 조회하는 방법

MySQL에서 ENUM('M','F') 타입으로 저장된 성별 값을 조회할 때 'M' 또는 'F' 대신 '남성(Male)' 또는 '여성(Female)'처럼 읽기 쉬운 형태로 표시하고 싶다면 IF() 함수를 활용하면 됩니다. 이번 글에서는 예제 테이블을 만들고 단계별로 변환 방법을 살펴보겠습니다.

1. ENUM 컬럼이 포함된 테이블 생성

먼저 성별 컬럼이 ENUM 타입인 테이블을 생성합니다.

mysql> create table DemoTable
    (
    UserId int,
    UserName varchar(40),
    UserGender ENUM('M','F')
    );
Query OK, 0 rows affected (1.11 sec)

2. 샘플 데이터 삽입

INSERT 문을 사용해 테스트용 레코드를 추가합니다.

mysql> insert into DemoTable values(1,'John','M');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(2,'Maria','F');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(3,'David','M');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(4,'Emma','F');
Query OK, 1 row affected (0.15 sec)

3. 저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+--------+----------+------------+
| UserId | UserName | UserGender |
+--------+----------+------------+
| 1      | John     | M          |
| 2      | Maria    | F          |
| 3      | David    | M          |
| 4      | Emma     | F          |
+--------+----------+------------+
4 rows in set (0.00 sec)

4. IF() 함수로 '남성'/'여성' 형태로 변환하여 조회

아래 쿼리는 IF(UserGender='F','Female','Male') 조건식을 사용해 ENUM 값을 'Male' 또는 'Female'로 변환합니다. 별칭(Alias)을 지정하면 결과 컬럼명도 깔끔하게 유지할 수 있습니다.

mysql> SELECT UserId,UserName,IF(UserGender='F','Female', 'Male') AS `UserGender` from DemoTable;

실행 결과는 다음과 같습니다.

+--------+----------+------------+
| UserId | UserName | UserGender |
+--------+----------+------------+
| 1      | John     | Male       |
| 2      | Maria    | Female     |
| 3      | David    | Male       |
| 4      | Emma     | Female     |
+--------+----------+------------+
4 rows in set (0.00 sec)

참고: CASE WHEN 구문 활용하기

조건이 더 많아지거나 가독성을 높이고 싶다면 CASE WHEN 구문을 사용하는 것도 좋은 방법입니다.

SELECT UserId,
       UserName,
       CASE UserGender
           WHEN 'M' THEN 'Male'
           WHEN 'F' THEN 'Female'
           ELSE 'Unknown'
       END AS `UserGender`
FROM DemoTable;

이처럼 MySQL에서는 IF() 또는 CASE WHEN 구문을 사용해 ENUM에 저장된 축약 코드를 의미 있는 문자열로 손쉽게 변환하여 출력할 수 있습니다.