>  기사  >  백엔드 개발  >  다중 필드 퍼지 매칭 query_php 예제를 구현하는 thinkPHP 메소드

다중 필드 퍼지 매칭 query_php 예제를 구현하는 thinkPHP 메소드

WBOY
WBOY원래의
2016-12-05 13:28:191084검색

이 기사의 예에서는 thinkPHP가 다중 필드 퍼지 일치 쿼리를 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

소개: 쿼리가 여러 필드와 일치해야 하는 경우가 있습니다. 예를 들어 주소를 쿼리할 때 주소는 여러 필드로 구성됩니다. 도, 시, 구 등의 정보와 상세 주소가 있습니다. 이때 문의는 어떻게 하나요?

다른 필드에 동일한 쿼리 조건 구현

$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 문을 보면 알 수 있듯이 where의 괄호와 AND, OR이 아주 교묘하게 결합되어 있습니다.

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

더 많은 thinkPHP 관련 컨텐츠에 관심이 있는 독자는 이 사이트의 특별 주제인 "ThinkPHP 시작하기 튜토리얼", "ThinkPHP 템플릿 작동 기술 요약", "ThinkPHP 공통 메소드 요약", "codeigniter 시작하기 튜토리얼"을 확인할 수 있습니다. , "CI(CodeIgniter) ) 프레임워크 고급 튜토리얼, "Zend FrameWork 프레임워크 입문 튜토리얼", "Smarty 템플릿 기본 튜토리얼" 및 "PHP 템플릿 기술 요약".

이 기사가 ThinkPHP 프레임워크를 기반으로 하는 모든 사람의 PHP 프로그래밍에 도움이 되기를 바랍니다.

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