>  기사  >  백엔드 개발  >  PHP 쿼리 구현 방법의 종류와 thinkphp에서 쿼리를 구현하는 방법 소개

PHP 쿼리 구현 방법의 종류와 thinkphp에서 쿼리를 구현하는 방법 소개

伊谢尔伦
伊谢尔伦원래의
2017-07-15 11:57:002242검색

질문 기능은 일상적인 개발에서 자주 사용됩니다. 오늘 저희 PHP 중국어 웹사이트에서는 질의 기능의 구현 방법을 안내하고 thinkphp에서 질의 기능을 사용하는 방법을 간략하게 소개하겠습니다.

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로 시작하는 것을 의미

$는 특정 문자 또는 문자열로 끝나는 것을 의미

s$는 문자 s로 끝나는 것을 의미 사용되는 연산자는 다음과 같습니다.

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 '^...$';

thinkphp like fuzzy query

현재 점점 더 많은 사람들이 think
php 프레임워크
를 프로젝트 개발에 사용하고 있습니다. 좋은 캡슐화로 인해 순수 PHP 개발의 많은 부분이 그렇지 않습니다. 시작하기 쉽습니다. 이 기사의 예 즉, 유사한 퍼지 쿼리를 예로 들어 이를 설명합니다.

여기에서는 사용법을 설명하기 위해 주로 예제를 사용합니다.

ThinkPHP는 문자열을 쿼리 조건으로 직접 사용할 수 있지만 대부분의 경우 인덱스 배열이나 객체를 쿼리 조건으로 사용하는 것이 더 안전하기 때문에 권장됩니다.

1. 문자열을 쿼리 조건으로 사용

이것은 가장 전통적인 방법이지만 그다지 안전하지는 않습니다. 예:

$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select();

최종 생성된 SQL 문은

SELECT * FROM think_user WHERE type=1 AND status=1

입니다. 필드 간 기본 논리적 관계는 논리적 AND AND이지만 기본 논리적 판단은 _logic을 사용하여 쿼리 로직을 정의함으로써 다음 규칙을 사용하여 변경할 수 있습니다.

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR';
// 把查询条件传入查询方法
$User->where($condition)->select();

최종 생성된 SQL 문은

SELECT * FROM think_user WHERE `name`='thinkphp' OR `account`='thinkphp'

입니다. 2. 배열 모드를 쿼리 조건으로

많이 말했지만, like 쿼리를 어떻게 구현하는지

$userForm=M('user'); 
$where['name']=array('like','php%');
$userForm->where($where)->select();

를 살펴보겠습니다. 여기서 like 쿼리는

name like 'php%'

쿼리 문:

$where['name']=array('like',array('%php%','%.com'),'OR');
입니다.

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

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