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

MySQL 쿼리에서 LIKE concat() 활용 방법 완벽 가이드

MySQL에서 LIKE concat()을 사용할 수 있나요?

네, MySQL에서는 LIKE 연산자와 CONCAT() 함수를 함께 사용할 수 있습니다. CONCAT() 함수로 동적으로 패턴 문자열을 만들어 LIKE 조건에 적용하면, 고정된 문자열 대신 유연한 검색 조건을 구성할 수 있습니다.

실제 예제를 통해 확인해 보겠습니다.

1. 테이블 생성하기

먼저 데모용 테이블을 생성합니다.

mysql> create table DemoTable
(
    Name varchar(50)
);
Query OK, 0 rows affected (0.63 sec)

2. 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 샘플 레코드를 추가합니다.

mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Adam');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Bob');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.16 sec)

3. 전체 레코드 조회하기

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+------+
| Name |
+------+
| John |
| Adam |
| Bob  |
| Mike |
+------+
4 rows in set (0.00 sec)

4. LIKE concat() 쿼리 실행하기

아래는 CONCAT() 함수를 활용해 '%o%'라는 검색 패턴을 동적으로 생성하고, 이름에 문자 'o'가 포함된 레코드를 조회하는 쿼리입니다.

mysql> select Name from DemoTable where Name LIKE concat('%','o','%');

실행 결과는 다음과 같습니다.

+------+
| Name |
+------+
| John |
| Bob  |
+------+
2 rows in set (0.03 sec)

LIKE concat()의 장점

위 결과에서 볼 수 있듯이, 이름에 'o'가 포함된 JohnBob만 정상적으로 조회되었습니다.

LIKE concat() 조합은 특히 다음과 같은 상황에서 유용합니다.

  • 검색어를 변수나 파라미터로 전달받아 동적 쿼리를 구성할 때
  • 여러 컬럼 값을 결합해 하나의 검색 패턴을 만들 때
  • 애플리케이션 코드에서 문자열 연결 없이 SQL 내부에서 패턴을 처리하고 싶을 때

예를 들어 WHERE Name LIKE CONCAT('%', @searchKeyword, '%')처럼 작성하면, 사용자 입력값을 안전하게 패턴에 포함시켜 부분 일치 검색을 구현할 수 있습니다. 다만 사용자 입력을 직접 연결할 경우 SQL 인젝션 위험이 있으므로, 반드시 파라미터 바인딩(Prepared Statement)과 함께 사용하는 것이 좋습니다.