MySQL에서 문자열 패턴

출처: 인터넷
작성자: 사용자
키워드: 웹 프로그래밍 MySQL 자습서

MySQL 표준 SQL 패턴 일치 하며 6, grep, 스트림 같은 유닉스 유틸리티를 기반으로 하는 정규 표현식 패턴 일치 확장 하기 위한 형식

표준 SQL 패턴 일치

SQL 패턴 일치를 사용 하면 모든 단일 문자 "_", "%" 문자 (0 문자 포함)의 수와 일치 하는 동안 일치 수 있습니다. MySQL, SQL 스키마는 무시 하는 경우 기본값입니다. 몇 가지 예는 다음과 같습니다. SQL 모드를 사용할 때 사용할 수 없습니다 = 또는! =;

예를 들어 테이블 애완 동물, "B"로 시작 하는 이름의 찾을에:

mysql > 선택 * 애완 동물 어디 이름 "b %";

+--------+--------+---------+------+------------+------------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+--------+--------+---------+------+------------+------------+

| 버 피 | 해 롤 드 | 개 | f | 1989-05-13 | NULL |

| Bowser | 다이앤 | 개 | m | 1989 년 08 월 31 일 | 1995 년 07 월 29 일 |

+--------+--------+---------+------+------------+------------+

"년도"로 끝나는 이름을 찾으려면:

Mysql > 선택 * 같은 애완 동물 어디 이름에서 "% 년도";

+--------+--------+---------+------+------------+-------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+--------+--------+---------+------+------------+-------+

| 솜 털 | 해 롤 드 | 고양이 | f | 1993-02-04 | NULL |

| 버 피 | 해 롤 드 | 개 | f | 1989-05-13 | NULL |

+--------+--------+---------+------+------------+-------+

"W"를 포함 하는 이름을 찾으려면:

mysql > 선택 * 애완 동물 어디 이름 "%w%";

+----------+-------+---------+------+------------+------------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+----------+-------+---------+------+------------+------------+

| 발톱 | 그웬 | 고양이 | m | 1994-03-17 | NULL |

| Bowser | 다이앤 | 개 | m | 1989 년 08 월 31 일 | 1995 년 07 월 29 일 |

| 휘슬러 | 그웬 | 새 | NULL | 1997-12-09 | NULL |

+----------+-------+---------+------+------------+------------+

"_" 모드 문자를 사용 하 여 정확히 5 자를 포함 하는 이름을 찾을:

mysql > 선택 * "_"; 같은 애완 동물 어디 이름에서

+-------+--------+---------+------+------------+-------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+-------+--------+---------+------+------------+-------+

| 발톱 | 그웬 | 고양이 | m | 1994-03-17 | NULL |

| 버 피 | 해 롤 드 | 개 | f | 1989-05-13 | NULL |

+-------+--------+---------+------+------------+-------+

MySQL 표준 SQL 패턴 일치 하며 6, grep, 스트림 같은 유닉스 유틸리티를 기반으로 하는 정규 표현식 패턴 일치 확장 하기 위한 형식

정규식 패턴 일치 확장

다른 유형의 패턴 일치 MySQL에서 제공 하는 확장된 정규 표현식의 사용입니다. 테스트에이 패턴과 일치 하는 경우 사용 하 여 regexp 및 하지 regexp 연산자 (또는 rlike 하지 rlike, 동의어입니다).

확장된 정규 표현식의 일부 문자는:

"." 단일 문자를 찾습니다.

한 문자 클래스 [...] 대괄호에서 문자를 찾습니다. 예를 들어 "[ABC]" 일치 "a", "B", 또는 "C". 문자 범위 이름을 사용 하 여는 "-".

모든 소문자와 "[0-9]" [a-z]와 일치 수 일치.

"*" 0 또는 그것의 앞에 더 많은 것 들. 예를 들어 "x *" 일치 "X" 문자, 수 "[0-9] *" 숫자, 임의 개수의 일치와 ". *" 아무것도의 수를 일치.

정규식은 대 소문자를 구분 하지만 하려는 경우, 쓰기의 두 가지 방법으로 일치 하는 문자 클래스를 사용할 수 있습니다. 예를 들어 "[AA]" 선수 중 소문자 또는 대문자 "a" 및 "[A-za-z]" 선수의 두 가지 방법으로 편지.

나타나면 어디 테스트 값에, (로 그들은 전체 값과 일치 하 고 SQL 패턴 일치) 패턴 일치 합니다.

그것은 시작 또는 시험된 값의 끝과 일치 해야 합니다 있도록 패턴을 찾으려면, 사용 "^" 또는 "$"로 패턴의 끝에는 패턴의 시작 부분에.

설명 하기 위해 아래와 같은 쿼리 RegExp 재정의 사용 하 여 확장된 정규식 작동 하는 방법:

"B"로 시작 하는 이름을 사용 하십시오 "^" 일치 하는 첫 번째 이름과 "[BB]" 일치 하는 소문자 또는 대문자 "B"의 시작에:

Mysql > 선택 * 애완 동물 어디 이름 REGEXP에서에서 "^ [BB]";

+--------+--------+---------+------+------------+------------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+--------+--------+---------+------+------------+------------+

| 버 피 | 해 롤 드 | 개 | f | 1989-05-13 | NULL |

| Bowser | 다이앤 | 개 | m | 1989 년 08 월 31 일 | 1995 년 07 월 29 일 |

+--------+--------+---------+------+------------+------------+

"년도"로 끝나는 이름을 찾으려면, "$"를 사용 하 여 일치 하는 이름 끝에:

mysql > 선택 * 애완 동물 어디 이름 REGEXP에서 "Fy___fckpd___5quot;

+--------+--------+---------+------+------------+-------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+--------+--------+---------+------+------------+-------+

| 솜 털 | 해 롤 드 | 고양이 | f | 1993-02-04 | NULL |

| 버 피 | 해 롤 드 | 개 | f | 1989-05-13 | NULL |

+--------+--------+---------+------+------------+-------+

"W"를 포함 하는 이름을 찾으려면, "[WW]"을 사용 하 여 소문자 또는 대문자 "W" 일치:

mysql > 선택 * 애완 동물 어디 이름 REGEXP "[WW]";

+----------+-------+---------+------+------------+------------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+----------+-------+---------+------+------------+------------+

| 발톱 | 그웬 | 고양이 | m | 1994-03-17 | NULL |

| Bowser | 다이앤 | 개 | m | 1989 년 08 월 31 일 | 1995 년 07 월 29 일 |

| 휘슬러 | 그웬 | 새 | NULL | 1997-12-09 | NULL |

+----------+-------+---------+------+------------+------------+

때문에 정규 표현식에 나타나는 경우 어디 값과 패턴 일치, 그것은 전체 값과 일치 패턴의 양쪽에 이전 쿼리에서 와일드 카드 문자를 배치 하려면 아무 필요도 없다.

SQL 모델을 사용 하는 경우 처럼.

정확히 5 문자가 포함 된 이름을 사용 하십시오 "^" 및 "$"에 맞게 시작 및 첫 번째 이름, 그리고 5의 끝 "." 사이 인스턴스:

mysql > 선택 * 애완 동물 어디 이름 REGEXP에서 "^... ___fckpd___7quot;

+-------+--------+---------+------+------------+-------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+-------+--------+---------+------+------------+-------+

| 발톱 | 그웬 | 고양이 | m | 1994-03-17 | NULL |

| 버 피 | 해 롤 드 | 개 | f | 1989-05-13 | NULL |

+-------+--------+---------+------+------------+-------+

또한 "{n}" "반복 n" 연산자를 사용 하 여 이전 쿼리를 다시 작성할 수 있습니다.

mysql > 선택 * 애완 동물 어디 이름 REGEXP에서에서 "^. {5} ___fckpd___8quot;

+-------+--------+---------+------+------------+-------+

| 이름 | 소유자 | 종 | 섹스 | 출생 | 죽음 |

+-------+--------+---------+------+------------+-------+

| 발톱 | 그웬 | 고양이 | m | 1994-03-17 | NULL |

| 버 피 | 해 롤 드 | 개 | f | 1989-05-13 | NULL |

+-------+--------+---------+------+------------+-------+

요약

이 문서에서는 문자열 패턴 일치에 대 한 지식을 설명합니다. 표준 SQL 패턴 일치 SQL 언어에 대 한 표준 이며 다른 관계형 데이터베이스 시스템에 의해 받아들여질 수 있다. 정규식 패턴 일치 확장

유닉스 시스템의 표준에 따라 개발 되 고는 일반적으로 기능 하지만, MySQL에서 사용할 수는 표준 SQL 패턴 보다 더 강한.

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.