Maison > Article > développement back-end > Méthode ThinkPHP pour implémenter une requête de correspondance floue multi-champs
Cet article présente principalement la méthode de thinkPHP pour implémenter une requête de correspondance floue multi-champs, et analyse les opérations de modèle associées et les instructions SQL de thinkPHP pour la requête de correspondance floue sous forme d'exemples. Les amis dans le besoin peuvent se référer à cet article <.>
L'exemple décrit comment thinkPHP implémente une requête de correspondance floue multi-champs. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants : Introduction : Parfois, la requête doit correspondre à plusieurs champs. Par exemple, lors d'une requête sur une adresse, celle-ci est composée de plusieurs champs. Il y a des provinces, des villes, des districts, etc., ainsi que des adresses détaillées. Comment interroger à ce moment-là ?Implémenter les mêmes conditions de requête pour différents champs$User = M("User"); // 实例化User对象 $map['name|title'] = 'thinkphp'; // 把查询条件传入查询方法 $User->where($map)->select();Utiliser dans le projet
if ($address) { // 地址查询 $where['b.province|b.city|b.area|b.detail'] = array('like', '%'.$address.'%'); $this->assign('address', $address); }Cette exigence est résolue de manière très simple et très précise. L'instruction SQL générée est la suivante
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,10Comme le montre l'instruction SQL, les parenthèses AND et OR les combinaisons où sont très intelligentes. La capture d'écran est la suivante Recommandations associées :
Framework Thinkphp5, implémentation simple du hook comportemental Hook
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!