MySQL은 정규식 및 REGEXP 를 기반으로 하는 다른 유형의 패턴 일치 작업을 지원합니다. 운영자. 다음은 REGEXP 와 함께 사용할 수 있는 패턴 표입니다. 패턴 일치를 처리하는 연산자입니다.
패턴 | 패턴이 일치하는 항목 |
^ | 문자열 시작 |
$ | 문자열 끝 |
. | 단일 문자 |
[...] | 대괄호 사이에 나열된 모든 문자 |
[^...] | 대괄호 사이에 나열되지 않은 모든 문자 |
p1|p2|p3 | 교체; p1, p2 또는 p3 패턴 중 하나와 일치 |
* | 앞 요소의 0개 이상의 인스턴스 |
+ | 이전 요소의 하나 이상의 인스턴스 |
{n} | 이전 요소의 n개 인스턴스 |
{m,n} | 이전 요소의 인스턴스 m에서 n까지 |
예시
REGEXP 사용을 설명하기 위해 다음 데이터가 있는 'Student_info' 테이블을 사용하고 있습니다 -
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +------+---------+------------+------------+ 5 rows in set (0.00 sec)
이제 다음은 REGEXP를 사용하여 위의 표에서 '이름'의 패턴을 찾는 몇 가지 쿼리입니다. -
mysql> Select Name from student_info WHERE Name REGEXP '^Y'; +---------+ | Name | +---------+ | YashPal | +---------+ 1 row in set (0.11 sec)
위의 쿼리는 'Y'로 시작하는 모든 이름을 찾습니다.
mysql> Select name from student_info WHERE Name REGEXP 'am$'; +-------+ | name | +-------+ | Ram | | Shyam | +-------+ 2 rows in set (0.00 sec)
위의 쿼리는 'am'으로 끝나는 모든 이름을 찾습니다.
mysql> Select name from student_info WHERE Name REGEXP 'av'; +--------+ | name | +--------+ | Gaurav | +--------+ 1 row in set (0.00 sec)
위의 쿼리는 'av'가 포함된 모든 이름을 찾습니다.
mysql> Select name from student_info WHERE Name REGEXP '^[aeiou]|am$'; +-------+ | name | +-------+ | Ram | | Shyam | +-------+ 2 rows in set (0.00 sec)
위의 쿼리는 모음으로 시작하여 'am'으로 끝나는 모든 이름을 찾습니다.