Heim  >  Artikel  >  Datenbank  >  Verstehen Sie die Fuzzy-Abfrage von MySQ (Oracle) und verwenden Sie instr() anstelle von like, um die Effizienz zu verbessern

Verstehen Sie die Fuzzy-Abfrage von MySQ (Oracle) und verwenden Sie instr() anstelle von like, um die Effizienz zu verbessern

coldplay.xixi
coldplay.xixinach vorne
2020-07-01 17:59:472431Durchsuche

Verstehen Sie die Fuzzy-Abfrage von MySQ (Oracle) und verwenden Sie instr() anstelle von like, um die Effizienz zu verbessern

Jeder weiß, dass Like sehr ineffizient ist und sehr langsam sein wird, wenn die Datenmenge groß ist. Heute habe ich eine integrierte Funktion entdeckt (), das effizienter ist als High

  • SELECT * FROM msg_list WHERE title LIKE '%涂山%'
    kann ersetzt werden durch:
  • SELECT * FROM msg_list WHERE INSTR(title,'涂山') > 0

Die in verwendeten Methoden ThinkPHP/Laravel sind:

  1. Verwenden Sie whereRaw(), um natives INSTR() auszuführen
  2. Ändern Sie die Konstruktionsabfrage (nicht empfohlen, aber bequem zu verwenden)
    项目根目录\thinkphp\library\think\db\Builder.php

    MsgList::where([
         'title' => ['instr','涂山']])
     ->select();

Verwandte Lernempfehlungen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonVerstehen Sie die Fuzzy-Abfrage von MySQ (Oracle) und verwenden Sie instr() anstelle von like, um die Effizienz zu verbessern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen