>  기사  >  백엔드 개발  >  PHP에서 퍼지 쿼리를 구현하는 방법

PHP에서 퍼지 쿼리를 구현하는 방법

怪我咯
怪我咯원래의
2017-07-12 11:02:073909검색

"퍼지 검색"은 "정확한 검색"과 반대되는 개념입니다. 이름에서 알 수 있듯이 검색 시스템이 사용자가 입력한 키워드의 동의어를 기반으로 자동으로 퍼지 검색을 수행하여 더 많은 검색 결과를 얻는다는 의미입니다. 동의어는 시스템의 관리 인터페이스에 의해 구성됩니다. "컴퓨터"와 "컴퓨터"를 동의어로 구성하고 "컴퓨터"를 검색하면 "컴퓨터"가 포함된 웹 페이지도 검색 결과에 나타납니다. 퍼지 검색은 동의어 검색이기도 합니다. 여기서 동의어는 "검색 관리"의 "동의어 사전"을 통해 사용자가 구성합니다. 사용자가 검색 페이지에서 검색할 동의어에 단어를 입력하면 "퍼지 검색" 확인란 이 선택되어 있는 한 해당 키워드의 모든 동의어 정보도 검색됩니다.

다음 편집기는 PHP 퍼지 쿼리 구현 방법을 제공합니다(권장). 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 에디터를 따라가며 함께 살펴볼까요

패턴 쿼리

1.SQL 매칭 모드

2. 정규식매칭 모드(일반적으로 권장되지 않음)

SQL 매칭 모드

1. SQL 일치 모드를 사용할 때는 연산자 = 또는!를 사용할 수 없습니다. = 대신 LIKE 또는 NOT LIKE 연산자를 사용하세요. 2. SQL 일치 모드를 사용하면 MYSQL은 2가지 종류의

와일드카드

를 제공합니다. %는 임의의 수의 문자를 나타냅니다(0 포함).

_는 임의의 단일 문자를 나타냅니다.

3. 일치 형식에 위의 두 와일드카드 문자가 포함되지 않은 경우 쿼리 효과는 다음과 같습니다. = 또는! =

4. SQL 일치 모드를 사용하세요. 일치 시 대소문자를 구분하지 않습니다

#查询用户名以某个字符开头的用户
#查询用户名以字符'l'开头的用户: l%
SELECT * FROM user WHERE username LIKE 'l%';
#查询用户名以某个字符结尾的用户
#查询用户名以字符'e'结尾的用户:e%
SELECT * FROM user WHERE username LIKE 'e%';
#查询用户名包含某个字符的用户
#查询用户名包含字符'o'的用户:%o%
SELECT * FROM user WHERE username LIKE '%o%';
#查询包含三个字符的用户
SELECT * FROM user WHERE username LIKE '_';
#查询用户名第二个字符为o的用户:_o%
SELECT * FROM user WHERE username LIKE '_o%';

정규식 일치 모드와일드카드(정규식)

모든 단일 문자와 일치

*0개와 일치합니다. 또는 그 이상의 문자

x*는 임의 개수의 x 문자와 일치함을 의미합니다.

[..] 괄호 안의 모든 문자와 일치합니다.

[abc] ab 또는 c 문자와 일치

[a-z] 모든 문자와 일치합니다
[0- 9] 모든 숫자와 일치
[0-9]* 모든 숫자와 일치
[a-z]* 모든 문자와 일치

^는 특정 문자 또는

문자열로 시작하는 것을 의미합니다.

^a는 문자로 시작하는 것을 의미합니다 a

$는 특정 문자 또는 문자열로 끝나는 것을 의미합니다.

s$는 문자 s로 끝나는 것을 의미합니다.

정규식 일치 패턴을 사용하는 데 사용되는 연산자는

REGEXP 또는 NOT REGEXP(RLIKE 또는 NOT RLIKE )

참고 : 정규식 일치 패턴의 경우 정규식이 일치 필드의 어느 위치에나 나타나면

패턴이 일치하게 됩니다. 일치시키기 위해 양쪽에 와일드카드를 넣을 필요는 없습니다.

와일드카드만 사용하는 경우. 일치하려면 N이라고 가정하면 일치 패턴은 N보다 크거나 같음을 나타냅니다.

위 문장을 어떻게 이해합니까?

... 3자 이상의 데이터와 일치

..... 4자 이상의 데이터와 일치

#사용자 이름이 문자 l로 시작하는 사용자를 쿼리합니다. ^l;
#정규표현식 작성법

SELECT * FROM user WHERE username REGEXP '^l';
#sql匹配模式写法:
SELECT * FROM user WHERE username LIKE 'l%';
#查询用户名正好是三个字符的用户:^...$;
#sql匹配模式写法:
SELECT * FROM user WHERE username LIKE '_';
#正则表达式写法
SELECT * FROM user WHERE username REGEXP '^...$';

위 내용은 PHP에서 퍼지 쿼리를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.