본문 바로가기

IT/DB

SQL 쿼리에서 문자열 검색 조건 REGEXP 사용하는 방법은?

728x90
반응형

 

 

 

 

REGEXP는 SQL에서 정규표현식(Regular Expression) 으로 문자열을 매칭할 수 있게 해주는 강력한 기능입니다.

 

큐브리드에서도 REGEXP_LIKE() 함수를 통해 사용 가능합니다.

 


✅ 기본 문법 (CUBRID)

SELECT * FROM 테이블명 WHERE REGEXP_LIKE(컬럼명, '정규표현식패턴');

 

🔍 예제들

 

1. 특정 패턴 포함

-- 이름에 "김"이 들어간 사람
SELECT * FROM 사용자 WHERE REGEXP_LIKE(이름, '김');

2. 전화번호가 010으로 시작

SELECT * FROM 연락처 WHERE REGEXP_LIKE(전화번호, '^010');

3. 숫자만 포함된 문자열 찾기

SELECT * FROM 데이터 WHERE REGEXP_LIKE(내용, '^[0-9]+$');

4. 이메일 주소 포맷 검사

SELECT * FROM 회원 WHERE REGEXP_LIKE(이메일, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');

 

# 자주 쓰는 정규식 패턴 요약

패턴 의미
. 아무 문자 하나
^ 문자열 시작
$ 문자열 끝
[] 문자 집합
+ 1회 이상 반복
* 0회 이상 반복
? 0 또는 1회
{n} 정확히 n회
` `

⚠️ 주의

  • 큐브리드에서는 REGEXP_LIKE() 를 사용해야 함. (MySQL과 약간 다름)
  • 정규식이 복잡할수록 성능에 영향 줄 수 있으니 WHERE 절에 남용은 주의!

 

REGEXP '^ABC_' 조건은 정규식 의미


✅ 정규표현식 해석: ^ABC_


패턴 요소의미
^ 문자열 시작을 의미함
ABC_ 문자열이 'ABC_'로 시작해야 함 (밑줄 포함)

🔍 예시로 살펴보면

이 조건에 매치되는 값 예시:

  • ABC_123
  • ABC_test
  • ABC_
  • ABC_xyz_more

매치되지 않는 값 예시:

  • XABC_123 → 시작이 X로 되어 있음
  • 123_ABC → 'ABC_'가 중간에 있음
  • AABC_123 → ABC_ 앞에 다른 문자가 있음

✅ CUBRID 쿼리 예시

SELECT * FROM your_table WHERE REGEXP_LIKE(your_column, '^ABC_');
 

 

 

 

 

 

300x250
반응형