특정 필드를 쿼리할 때 특정 데이터 부분만 일치시키려는 경우가 있습니다. 예를 들어 특정 키워드가 존재하는지 확인하기 위해 이 기사의 모든 키워드를 쿼리하려면 일치해야 하는 경우가 많습니다. 특정 키워드 값에 대한 매칭 쿼리를 설명하겠습니다
SQL 퍼지 쿼리의 구문은
"SELECT 컬럼 FROM 테이블 WHERE 컬럼 LIKE ';pattern';"입니다.
SQL은 네 가지 일치 모드를 제공합니다.
1. %는 0개 이상의 문자를 나타냅니다. 다음 명령문:
SELECT * FROM user WHERE name LIKE ';%三%';
은 "Zhang San", "Three-legged Cat", "Tang Sanzang"과 같이 "3"이 포함된 모든 이름을 찾습니다. , 등 ;
2. _은 단일 문자를 나타냅니다. 명령문:
SELECT * FROM user WHERE name LIKE ';_三_';
이름이 세 글자이고 중간 글자가 "三"인 "Tang Sanzang"만 찾습니다.
SELECT * FROM user WHERE name LIKE ' ;三__';
이름이 세 글자이고 첫 글자가 "三"이 되도록 "세다리 고양이"만 찾습니다.
3 [ ]는 괄호 안에 나열된 문자 중 하나를 나타냅니다(일반과 유사). 표현). 명령문:
SELECT * FROM user WHERE name LIKE ';[张文王]三';
은 "Zhang San", "Li San", "Wang San"("Zhang Li Wang San" 대신)을 찾습니다.
[ ]에 일련의 문자(01234, abcde 등)가 포함된 경우 "0-4", "a-e"로 축약할 수 있습니다.
SELECT * FROM user WHERE name LIKE ';老[1-9] ' ;
는 "Old 1", "Old 2", ..., "Old 9"를 찾습니다.
"-" 문자를 찾으려면 먼저 입력하세요: ';Zhang San[-1 -9] ';
4. [^ ]는 괄호 안에 나열되지 않은 단일 문자를 나타냅니다. 명령문:
SELECT * FROM user WHERE name LIKE ';[^Zhang Liwang]三';
은 성이 "Zhang", "Li" 및 "Wang" 등이 아닌 "Zhao San" 및 "Sun San"을 찾습니다. ;
SELECT * FROM user WHERE name LIKE ';老[^1-4]';
"old 1"에서 "old 4"를 제외하여 "old 5", "old 6",..., "올드 9".
! 마지막으로 포인트입니다!
와일드카드로 인해 특수 문자 "%", "_", "[" 및 "';"에 대한 쿼리 문은 정상적으로 구현될 수 없습니다. 그러나 특수 문자를 "[ ]"로 묶으면 정상적으로 쿼리할 수 있습니다. 이를 바탕으로 다음 함수를 작성합니다:
function sqlencode(str)
str=replace(str,"';","';';")
str=replace(str,"["," [[ ]") ';이 문장이 먼저 와야 합니다
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
끝 함수
위 내용은 특정 필드에 대한 mysql 정규 일치 퍼지 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!