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

MySQL에서 조건이 참일 때 특수 문자로 값을 설정하는 방법

MySQL에서 특정 조건이 참(true)일 때 원하는 값을, 그렇지 않을 경우 특수 문자를 대신 표시하고 싶다면 IF() 함수를 활용하면 됩니다. IF() 함수는 조건식의 결과에 따라 두 가지 값 중 하나를 반환하는 간단하면서도 강력한 도구입니다.

이 글에서는 실제 예제를 통해 클라이언트 정보 테이블에서 나이가 50세를 초과하는 경우에만 이름을 표시하고, 그 외의 경우에는 하이픈(-)으로 구성된 특수 문자를 출력하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다. ClientId는 자동 증가 기본 키로 설정하고, ClientName과 ClientAge 컬럼을 함께 정의합니다.

mysql> create table DemoTable637
    (ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
     ClientName varchar(100),
     ClientAge int
);
Query OK, 0 rows affected (0.82 sec)

2. 레코드 삽입하기

INSERT 명령을 사용하여 테이블에 샘플 데이터를 넣어 보겠습니다.

mysql> insert into DemoTable637(ClientName,ClientAge) values('Chris',23);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable637(ClientName,ClientAge) values('Robert',24);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable637(ClientName,ClientAge) values('David',57);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable637(ClientName,ClientAge) values('Carol',60);
Query OK, 1 row affected (0.13 sec)

3. 전체 레코드 조회하기

SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select *from DemoTable637;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
|        1 | Chris      |        23 |
|        2 | Robert     |        24 |
|        3 | David      |        57 |
|        4 | Carol      |        60 |
+----------+------------+-----------+
4 rows in set (0.00 sec)

4. 조건이 참일 때 특수 문자 설정하기

이제 핵심인 IF() 함수를 적용해 보겠습니다. 아래 쿼리는 ClientName이 NULL이 아니고 ClientAge가 50보다 큰 경우에만 클라이언트 이름을 그대로 반환하고, 조건을 만족하지 않으면 하이픈 13개('-------------')를 대신 표시합니다.

mysql> select if(ClientName IS NOT NULL AND ClientAge > 50, ClientName, '-------------') from DemoTable637;

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

+--------------------------------------------------------------------------+
| if(ClientName IS NOT NULL AND ClientAge > 50,ClientName,'-------------') |
+--------------------------------------------------------------------------+
| -------------                                                            |
| -------------                                                            |
| David                                                                    |
| Carol                                                                    |
+--------------------------------------------------------------------------+
4 rows in set (0.00 sec)

결과 분석

출력 결과를 보면 논리가 명확하게 작동한 것을 확인할 수 있습니다.

  • Chris(23세)Robert(24세)는 나이가 50 이하이므로 조건이 거짓(false)이 되어 특수 문자 '-------------'가 표시됩니다.
  • David(57세)Carol(60세)은 이름이 NULL이 아니고 나이가 50을 초과하므로 조건이 참(true)이 되어 실제 이름이 그대로 출력됩니다.

IF() 함수 문법 정리

IF() 함수의 기본 문법은 다음과 같습니다.

IF(조건식, 조건이_참일_때_값, 조건이_거짓일_때_값)

이처럼 IF() 함수를 사용하면 별도의 애플리케이션 로직 없이도 SQL 쿼리 내에서 조건부 값을 손쉽게 처리할 수 있습니다. NULL 체크, 범위 비교 등 다양한 조건과 결합하여 활용 범위를 넓힐 수 있으니, 상황에 맞게 응용해 보시기 바랍니다.