MySQL에서 열(column) 이름에 와일드카드를 활용하려면, 먼저 column_name을 조회한 뒤 LIKE 연산자와 함께 와일드카드 패턴을 적용하면 됩니다. 이 방법은 INFORMATION_SCHEMA.COLUMNS 테이블을 이용해 특정 테이블의 열 중 원하는 패턴과 일치하는 이름만 손쉽게 찾아낼 수 있습니다.
기본 문법
사용되는 기본 문법은 다음과 같습니다.
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'yourTableName' AND COLUMN_NAME LIKE 'yourWildCards%';
예제 테이블 생성
위 문법을 실제로 이해하기 위해 예제 테이블을 하나 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table WildcardDemo
-> (
-> ProductId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ProductName varchar(10),
-> Shippingdatetime datetime,
-> ProductPrice int
-> );
Query OK, 0 rows affected (1.31 sec)테이블이 정상적으로 생성되었는지 확인하기 위해 DESC 명령어로 테이블 구조를 살펴보겠습니다.
mysql> desc WildcardDemo;
출력 결과
+------------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+-------------+------+-----+---------+----------------+ | ProductId | int(11) | NO | PRI | NULL | auto_increment | | ProductName | varchar(10) | YES | | NULL | | | Shippingdatetime | datetime | YES | | NULL | | | ProductPrice | int(11) | YES | | NULL | | +------------------+-------------+------+-----+---------+----------------+ 4 rows in set (0.01 sec)
위 테이블은 총 네 개의 필드로 구성되어 있으며, 그중 세 개의 필드(ProductId, ProductName, ProductPrice)가 'Product'라는 단어로 시작합니다.
열 이름에 와일드카드 적용하기
이제 LIKE 연산자와 '%' 와일드카드를 사용해 'product'로 시작하는 열 이름만 조회해 보겠습니다. 실행 쿼리는 다음과 같습니다.
mysql> select column_name from information_schema.columns
-> where table_name = 'WildcardDemo'
-> and column_name LIKE 'product%';출력 결과
+--------------+ | COLUMN_NAME | +--------------+ | ProductId | | ProductName | | ProductPrice | +--------------+ 3 rows in set (0.10 sec)
결과를 보면 'Product'로 시작하는 세 개의 열 이름만 정확히 필터링되어 반환된 것을 확인할 수 있습니다. 이처럼 INFORMATION_SCHEMA.COLUMNS와 LIKE 연산자를 조합하면, 대규모 데이터베이스에서도 원하는 패턴의 열 이름을 빠르고 간편하게 검색할 수 있습니다.