Heim  >  Artikel  >  Backend-Entwicklung  >  thinkPHP-Methode zum Implementieren von Mehrfeld-Fuzzy-Matching-Query_php-Beispiel

thinkPHP-Methode zum Implementieren von Mehrfeld-Fuzzy-Matching-Query_php-Beispiel

WBOY
WBOYOriginal
2016-12-05 13:28:191036Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie thinkPHP eine Mehrfeld-Fuzzy-Matching-Abfrage implementiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Einführung: Manchmal müssen Abfragen mit mehreren Feldern übereinstimmen. Wenn Sie beispielsweise eine Adresse abfragen, besteht die Adresse aus mehreren Feldern. Es gibt Provinzen, Städte, Bezirke usw. sowie detaillierte Adressen. Wie kann ich mich zu diesem Zeitpunkt erkundigen?

Implementieren Sie dieselben Abfragebedingungen für verschiedene Felder

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

Verwenden Sie es im Projekt

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

Diese Anforderung wird sehr einfach und sehr genau gelöst.

Die generierte SQL-Anweisung lautet wie folgt

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

Wie aus der SQL-Anweisung hervorgeht, sind die Klammern AND und OR in where sehr geschickt kombiniert.

Screenshots sind wie folgt

Leser, die an weiteren Inhalten zu thinkPHP interessiert sind, können sich die speziellen Themen dieser Website ansehen: „ThinkPHP-Tutorial für die ersten Schritte“, „Zusammenfassung der Fertigkeiten für den Betrieb von ThinkPHP-Vorlagen“, „Zusammenfassung allgemeiner Methoden von ThinkPHP“, „Codeigniter-Tutorial für die ersten Schritte“ , „CI (CodeIgniter) ) Framework Advanced Tutorial“, „Zend FrameWork Framework Einführungs-Tutorial“, „Smarty Template Basic Tutorial“ und „PHP Template Technology Summary“.

Ich hoffe, dass dieser Artikel für jedermann bei der PHP-Programmierung basierend auf dem ThinkPHP-Framework hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn