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

MySQL에서 특정 문자로 시작하는 열만 골라 이름을 하나로 연결하는 방법

MySQL에서 특정 문자로 시작하는 열만 골라내고 싶다면 LIKE 연산자를 사용하면 됩니다. 또한 조회한 열 이름들을 하나의 문자열로 이어 붙일 때는 GROUP_CONCAT() 함수를 활용합니다. 기본 문법은 다음과 같습니다.

SELECT group_concat(COLUMN_NAME separator ' , ')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = "yourTableName"
AND table_schema = "yourDatabaseName"
AND column_name LIKE "yourSpecificLetter%";

각 부분의 역할은 다음과 같습니다.

  • INFORMATION_SCHEMA.COLUMNS: 데이터베이스에 있는 모든 테이블의 열(컬럼) 정보를 담고 있는 시스템 뷰입니다.
  • column_name LIKE 'Cl%': 'Cl'로 시작하는 열 이름만 필터링합니다. %는 임의의 문자열을 의미하는 와일드카드입니다.
  • GROUP_CONCAT(separator ' , '): 여러 개의 열 이름을 지정한 구분자(' , ')로 연결해 하나의 문자열로 반환합니다.

1. 예제 테이블 생성하기

먼저 실습에 사용할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable671(
    ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(100),
    ClientAge int,
    ClientAddress varchar(200),
    ClientCountryName varchar(100)
);
Query OK, 0 rows affected (0.62 sec)

생성된 테이블에는 ClientId, ClientName, ClientAge, ClientAddress, ClientCountryName처럼 'Cl'로 시작하는 열들이 포함되어 있습니다.

2. 특정 문자로 시작하는 열 이름 조회 후 연결하기

다음 쿼리는 'Cl'로 시작하는 열을 찾아, 해당 열 이름들을 쉼표로 구분된 하나의 문자열로 반환합니다.

mysql> SELECT group_concat(COLUMN_NAME separator ' , ')
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_name = "DemoTable671"
    AND table_schema = "web"
    AND column_name LIKE "Cl%";

쿼리를 실행하면 아래와 같은 결과가 출력됩니다.

+-----------------------------------------------------------------------+
| group_concat(COLUMN_NAME separator ' , ')                             |
+-----------------------------------------------------------------------+
| ClientId , ClientName , ClientAge , ClientAddress , ClientCountryName |
+-----------------------------------------------------------------------+
1 row in set (0.00 sec)

3. 핵심 정리

  • LIKE '문자%' 조건을 사용하면 원하는 문자로 시작하는 열만 손쉽게 필터링할 수 있습니다.
  • GROUP_CONCAT()의 separator 옵션을 바꾸면 구분자를 자유롭게 지정할 수 있습니다(예: ', ', '|' 등).
  • table_schema 조건을 반드시 지정해야 데이터베이스 전체가 아닌 대상 테이블의 열만 정확하게 조회됩니다.