이 글에서는 다중 필드 퍼지 매칭 쿼리를 구현하기 위한 thinkPHP의 방법을 주로 소개하고, 퍼지 매칭 쿼리에 대한 thinkPHP의 관련 모델 연산 및 SQL 문을 예제 형식으로 분석하여 도움이 필요한 친구들이 참고할 수 있습니다
예제 이 기사에서는 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문을 보면 괄호와 AND, OR가 아주 교묘하게 조합되어 있는 것을 알 수 있습니다.
스크린샷은 다음과 같습니다
관련 권장 사항:
Framework Thinkphp5 동작 Hook Hook의 간단한 구현
위 내용은 다중 필드 퍼지 매칭 쿼리를 구현하는 ThinkPHP 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!