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

PHP에서 다중 필드 퍼지 일치 쿼리를 구현하는 방법

墨辰丷
墨辰丷원래의
2018-05-30 09:27:583211검색

이 글에서는 주로 PHP에서 다중 필드 퍼지 매칭 쿼리를 구현하는 방법을 소개하고, 퍼지 매칭 쿼리에 대한 PHP의 관련 모델 연산 및 SQL 문을 예제 형식으로 분석합니다.

소개: 쿼리가 여러 필드와 일치해야 하는 경우가 있습니다. 예를 들어 주소를 쿼리할 때 주소는 여러 필드로 구성됩니다. 도, 시, 구 등의 정보와 함께 상세 주소가 있습니다. 이때 쿼리하는 방법은 무엇인가요?

서로 다른 필드에서 동일한 쿼리 조건을 구현합니다.

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

프로젝트에서 사용합니다.

if ($address) {
  // 地址查询
  $where['b.province|b.city|b.area|b.detail'] = array('like', '%'.$address.'%');
        $this->assign('address', $address);
}

이 요구 사항은 매우 간단하고 정확하게 해결됩니다.

생성된 sql문은 다음과 같습니다

SELECT a.*,b.name,b.tel,b.province,b.city,b.area,b.detail,b.zipcode
FROM sh_order a
LEFT JOIN sh_member_address b on a.member_id = b.member_id and b.selected = 1
WHERE ( `store_id` = '10' ) AND ( a.member_id IN ('7') ) AND ( (b.province LIKE '%宿城区%') OR (b.city LIKE '%宿城区%') OR (b.area LIKE '%宿城区%') OR (b.detail LIKE '%宿城区%') )
ORDER BY addtime desc, sendtime asc, paytime desc
LIMIT 0,10

SQL문을 보면 괄호와 AND, OR가 아주 교묘하게 조합되어 있는 것을 알 수 있습니다.

스크린샷은 다음과 같습니다

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. Related Related Restome : wechat


php

에서 차단하지 않은 도메인 이름을 무작위로 얻는 사람은 파일 관리 및 기본 기능 작업을 구현하는 방법으로 로그인 타임 아웃 감지 기능 예제에 대한 자세한 설명

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

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