이 기사의 예에서는 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 프로그래밍에 도움이 되기를 바랍니다.