MySQL에서 값에 캐리지 리턴 추가하기
MySQL에서 값에 캐리지 리턴(carriage return)이나 줄바꿈을 추가하려면 CONCAT_WS() 함수를 사용해야 합니다. 특히 새 줄(new line)을 만들고 싶다면 함수의 첫 번째 매개변수로 \n을 지정하면 됩니다.
기본 문법
SELECT CONCAT_WS('\n', yourColumnName) AS anyVariableName FROM yourTableName;CONCAT_WS()는 'Concatenate With Separator'의 약자로, 여러 문자열을 지정한 구분자로 하나로 연결해 주는 함수입니다. 구분자를 \n으로 설정하면 각 값 사이에 줄바꿈이 자동으로 삽입됩니다.
예제 테이블 생성하기
실제 동작을 확인하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table NewLineDemo
-> (
-> CountryName varchar(10)
-> );
Query OK, 0 rows affected (0.50 sec)
데이터 삽입
INSERT 명령어를 사용해 몇 개의 국가 이름을 입력합니다.
mysql> insert into NewLineDemo values('US');
Query OK, 1 row affected (0.15 sec)
mysql> insert into NewLineDemo values('UK');
Query OK, 1 row affected (0.13 sec)
mysql> insert into NewLineDemo values('AUS');
Query OK, 1 row affected (0.11 sec)저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from NewLineDemo;
실행 결과는 다음과 같습니다.
+-------------+
| CountryName |
+-------------+
| US |
| UK |
| AUS |
+-------------+
3 rows in set (0.00 sec)
CONCAT_WS()로 줄바꿈 적용하기
이제 CONCAT_WS() 함수를 사용해 각 값을 줄바꿈(\n)으로 구분하여 출력해 보겠습니다. 함수의 첫 번째 매개변수가 구분자 역할을 하며, 여기서는 \n을 지정합니다.
mysql> select concat_ws('\n',CountryName) as CountryList from NewLineDemo;실행 결과는 다음과 같습니다.
+-------------+
| CountryList |
+-------------+
| US |
| UK |
| AUS |
+-------------+
3 rows in set (0.00 sec)
직접 값을 지정하는 방식
테이블을 조회하는 대신, 여러 값을 직접 나열해서 연결할 수도 있습니다. 아래 쿼리는 'US', 'UK', 'AUS' 세 값을 \n으로 구분해 연결하는 예시입니다.
mysql> select concat_ws('\n','US','UK','AUS') as CountryName;실행 결과는 다음과 같습니다.
+-------------+
| CountryName |
+-------------+
| US |
| UK |
| AUS |
+-------------+
1 row in set (0.00 sec)
정리
MySQL에서 값 사이에 줄바꿈을 삽입하려면 CONCAT_WS() 함수의 첫 번째 인수로 \n을 전달하면 됩니다. 컬럼 값을 연결할 때도, 문자열을 직접 나열할 때도 동일하게 적용되므로 조회 결과를 보고서 형식이나 줄 단위 텍스트로 내보낼 때 유용하게 활용할 수 있습니다.