Latest web development tutorials

MySQL의 정규 표현식

이전 섹션에서 우리는 MySQL의 등을 통해 배운 ... %를 퍼지 매칭.

MySQL은 또한 정규 표현식 매칭을 사용하는 다른 정규 표현식 매칭, MySQL의 REGEXP 연산자를 지원합니다.

당신이 PHP 또는 Perl을 알고 있다면 MySQL의 정규 표현식이 스크립트와 유사한 일치하기 때문에, 다음 작업은 매우 간단합니다.

정상 모드의 아래 표는 정규식 연산자에 사용될 수있다.

모드 기술
^ 문자열의 시작 부분 일치합니다. 당신은 정규식 개체의 여러 줄 속성을 설정하면, ^ 또한 '\ n'을 위치 또는 '\ r에'후 일치합니다.
$ 문자열의 입력 끝을 맞 춥니 다. 당신은 전에 여러 줄 속성 정규식 개체도 일치 $ '\ n'또는 '\ r'위치를 설정합니다.
. "\ n"을 제외한 모든 단일 문자와 일치합니다. '\ n을'을 포함의 사용처럼, 모든 문자를 포함하여 일치 시키려면 '[. \ n]'모드.
[...] 문자의 집합입니다. 모든 문자가 포함 일치합니다. 예를 들어, '[ABC 방송]'는 'A'에서 '일반'과 일치합니다.
[^ ...] 음의 문자 집합. 포함되지 않은 문자를 찾습니다. 예를 들어, 'P'에서 '[^ abc 방송]'일치 "일반".
P1 | P2 | P3 경기 P1, P2 또는 P3. 예를 들어, "z | food '는"z "또는"food "를 일치시킬 수 있습니다. '(Z | f)의 짐 우드'는 "zood"또는 "음식"을 일치합니다.
* 앞의 표현식 0 번 이상 일치합니다. 예를 들어, ZO *은 "Z"와 "동물원"을 일치시킬 수 있습니다. * {0,}와 같습니다.
+ 위의 표현식 한 ​​번 이상 일치합니다. 예를 들어, "증"과 "동물원"일치 '+ zo 다음'하지만, "Z"를 일치하지 않을 수 있습니다. + {1}에 동일합니다.
{N} n은 음이 아닌 정수이다. 결정된 n 배를 매칭. 예를 들어, 'o를 {2}'두 개의 오의 '오'만 일치 할 수있는 "음식"의 "밥"과 일치하지 않습니다.
{N, m} m 및 n은 음수가 아닌 정수이다 여기서 n <= m. 매치와 최소 n 번에서 m 번까지 일치합니다.

더 많은 일반 요구 사항을 알게되면, 우리는 정규 표현식으로 SQL 문을 작성하는 자신의 요구에 더 될 수 있습니다. 우리의 이해를 심화 : 우리는 (person_tbl 테이블 이름을) 몇 가지 작은 예를 나열 아래 :

와 '일'시작 부분에 데이터 필드 이름을 모두 찾기 :

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

결말에 대한 '확인'에 데이터 필드 이름을 모두 찾기 :

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

이름 필드는 모든 데이터 '월'문자열이 포함 찾기 :

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

모음으로 모든 데이터의 문자열의 '확인'끝과 시작하는 이름 필드 찾기 :

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';