MySQL SELECT TRUE란 무엇인가?
MySQL에서 SELECT TRUE 문은 조건에 일치하는 행(row)이 존재할 때마다 1을 반환합니다. 즉, TRUE는 MySQL 내부적으로 1로 처리되는 불리언(Boolean) 상수이며, 조회된 각 행에 대해 항상 1이라는 값을 출력하게 됩니다.
실제 예제를 통해 동작 방식을 자세히 살펴보겠습니다.
1. 테스트용 테이블 생성하기
먼저 아래와 같이 간단한 테이블을 생성합니다.
mysql> create table DemoTable(Name varchar(100)); Query OK, 0 rows affected (0.54 sec)
2. 샘플 데이터 삽입하기
INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.12 sec)3. 전체 레코드 조회하기
SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+--------+ | Name | +--------+ | Chris | | Robert | | David | +--------+ 3 rows in set (0.00 sec)
4. SELECT TRUE 실행 결과 확인하기
이제 SELECT TRUE 쿼리를 실행해 보겠습니다.
mysql> select true from DemoTable;
결과는 다음과 같습니다.
+------+ | TRUE | +------+ | 1 | | 1 | | 1 | +------+ 3 rows in set (0.00 sec)
SELECT TRUE 활용 포인트
위 결과에서 알 수 있듯이, 테이블에 저장된 행의 수만큼 TRUE가 각각 1로 반환됩니다. 이는 MySQL에서 TRUE가 숫자 리터럴 1과 동일하게 취급되기 때문입니다. 반대로 FALSE는 0으로 처리됩니다.
이러한 특성은 EXISTS 서브쿼리나 조건 검증 로직에서 유용하게 활용될 수 있습니다. 예를 들어 특정 조건을 만족하는 행의 존재 여부만 빠르게 확인하고 싶을 때 SELECT TRUE 패턴을 응용하면 가독성 좋은 쿼리를 작성할 수 있습니다.