MySQL에서 테이블 조회 없이 정적(static) 문자열 값을 결과로 반환하고 싶다면 UNION을 활용하는 것이 가장 간단한 방법입니다. 여러 개의 SELECT 문을 UNION으로 연결하면, 각 문자열이 하나의 행(row)으로 출력됩니다.
기본 문법
정적 문자열을 반환하는 기본적인 문법은 다음과 같습니다.
select 'yourStringValue1' as yourAliasName UNION select 'yourStringValue2' as yourAliasName;
실제 사용 예제
위 문법을 실제 쿼리에 적용해 보겠습니다. 두 개의 문자열 'HELLO'와 'MySQL'을 반환하는 쿼리입니다.
mysql> select 'HELLO' as staticStringsResult
-> UNION
-> select 'MySQL' as staticStringsResult;쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+---------------------+ | staticStringsResult | +---------------------+ | HELLO | | MySQL | +---------------------+ 2 rows in set (0.00 sec)
버전에 따른 주의 사항
일부 MySQL 버전에서는 위와 같은 방식의 쿼리가 정상적으로 동작하지 않을 수 있습니다. 이 경우 각 SELECT 문을 괄호( )로 감싸주면 문제를 해결할 수 있습니다.
mysql> (select 'HELLO' as staticStringsResult)
-> UNION
-> (select 'MySQL' as staticStringsResult);괄호를 사용한 쿼리 역시 동일한 결과를 반환합니다.
+---------------------+ | staticStringsResult | +---------------------+ | HELLO | | MySQL | +---------------------+ 2 rows in set (0.00 sec)
추가 팁
UNION은 기본적으로 중복된 값을 제거합니다. 만약 중복된 문자열도 그대로 출력하고 싶다면 UNION ALL을 사용하는 것이 좋습니다. 또한 별칭(alias)은 첫 번째 SELECT 문의 것만 결과 열 이름으로 사용되므로, 의미 있는 별칭을 지정해 주는 것이 가독성 면에서 유리합니다.