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

MySQL에서 두 개 이상의 컬럼 값을 하나로 합치는 방법 – CONCAT() 함수 완벽 가이드

CONCAT() 함수로 여러 컬럼 값 결합하기

MySQL에서 두 개 이상의 컬럼(열) 값을 하나의 단일 컬럼으로 결합하려면 CONCAT() 함수를 사용하면 됩니다. 이때 CONCAT() 함수의 인자로는 결합하고자 하는 각 컬럼의 이름을 지정합니다. 함수는 지정된 순서대로 값을 이어 붙여 하나의 문자열로 반환합니다.

기본 문법

CONCAT(문자열1, 문자열2, ...)

인자에는 컬럼명뿐만 아니라 일반 문자열 리터럴도 함께 사용할 수 있으므로, 구분자(쉼표, 하이픈 등)를 원하는 형태로 삽입할 수 있다는 점이 유용합니다.

실전 예제

예를 들어 'Student'라는 테이블이 있고, 학생의 ID, 이름, 주소 정보를 한 개의 컬럼에 모아서 조회하고 싶다고 가정해 보겠습니다. 이 경우 다음과 같은 쿼리를 작성할 수 있습니다.

mysql> Select Id, Name, Address, CONCAT(ID,', ',Name,', ', Address)AS 'ID, Name,Address' from Student;
+------+---------+---------+--------------------+
| Id   | Name    | Address | ID, Name, Address  |
+------+---------+---------+--------------------+
| 1    | Gaurav  | Delhi   | 1, Gaurav, Delhi   |
| 2    | Aarav   | Mumbai  | 2, Aarav, Mumbai   |
| 15   | Harshit | Delhi   | 15, Harshit, Delhi |
| 20   | Gaurav  | Jaipur  | 20, Gaurav, Jaipur |
+------+---------+---------+--------------------+
4 rows in set (0.00 sec)

실행 결과를 보면 세 개의 컬럼 값이 쉼표와 공백으로 구분되어 하나의 문자열로 깔끔하게 결합된 것을 확인할 수 있습니다. 또한 AS 키워드를 사용해 결합된 결과 컬럼에 'ID, Name, Address'라는 별칭을 부여했기 때문에 출력 결과의 가독성도 높아졌습니다.

활용 시 알아두면 좋은 팁

  • NULL 값 주의: CONCAT() 함수의 인자 중 하나라도 NULL이 포함되면 전체 결과가 NULL로 반환됩니다. NULL이 있을 가능성이 있는 컬럼이라면 IFNULL() 함수로 먼저 처리하는 것이 안전합니다.
  • CONCAT_WS() 함수: 구분자를 반복해서 입력하는 것이 번거롭다면, 첫 번째 인자에 구분자를 지정하면 나머지 값들 사이에 자동으로 삽입해 주는 CONCAT_WS() 함수를 사용하는 것이 더 편리합니다.