Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL LIKE %string% verzeiht nicht genug. Kann ich sonst noch etwas verwenden?

Wenn Sie MyISAM verwenden, können Sie die Volltextindizierung verwenden. Siehe dieses Tutorial

Wenn Sie eine andere Speicher-Engine verwenden, können Sie eine Volltext-Engine eines Drittanbieters wie Sphinx verwenden, die als Speichermodul für mysql oder ein separater Server, der abgefragt werden kann.

Mit MySQL-Volltextindizierung eine Suche nach A J Kelly würde zu AJ Kelly passen (Nein, um die Dinge zu verwirren, aber A, J und AJ würden ignoriert, da sie standardmäßig zu kurz sind und auf Kelly passen würden.) Im Allgemeinen ist Volltext viel nachsichtiger (und normalerweise schneller als LIKE '%string%'), weil es teilweise erlaubt Übereinstimmungen, die dann nach Relevanz geordnet werden können.

Sie können auch SOUNDEX verwenden um die Suche fehlerverzeihender zu gestalten, indem Sie die phonetischen Äquivalente von Wörtern indizieren und sie durchsuchen, indem Sie SOUNDEX auf Ihre Suchbegriffe anwenden und diese dann zum Durchsuchen des Index verwenden. Mit soundex mary , marie , und marry werden alle übereinstimmen, zum Beispiel.