MySQL-Ergebnisse nach Relevanz sortieren: Beste Übereinstimmung zuerst
In einer MySQL-Datenbank beinhaltet die Live-Suchfunktion häufig das Sortieren von Ergebnissen nach Relevanz. Standardmäßig werden die Ergebnisse alphabetisch sortiert. Was aber, wenn wir Ergebnisse priorisieren möchten, bei denen die Suchzeichenfolge mit dem Wortanfang übereinstimmt?
Um dies zu erreichen, können wir die CASE-Anweisung und den Mustervergleich verwenden, um eine benutzerdefinierte zu erstellen Reihenfolge:
SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY CASE WHEN word LIKE 'searchstring%' THEN 1 WHEN word LIKE '%searchstring' THEN 3 ELSE 2 END
Diese Abfrage weist den Ergebnissen, bei denen die Suchzeichenfolge am Anfang des Worts erscheint, eine Priorität von 1 zu, denen, bei denen die Zeichenfolge innerhalb des Wortes übereinstimmt, eine Priorität von 3 und den Ergebnissen eine Priorität von 2 verbleibende Übereinstimmungen.
Alternativ können wir für die Sortierung basierend auf der Position der übereinstimmenden Zeichenfolge die LOCATE-Funktion verwenden:
SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY LOCATE('searchstring', word)
Diese Abfrage sortiert Ergebnisse basierend auf der Position der Suchzeichenfolge innerhalb des Wortes, wobei Übereinstimmungen, die früher im Wort gefunden wurden, Vorrang haben.
Schließlich können wir bei Verknüpfungen, bei denen mehrere Wörter mit der Suchzeichenfolge übereinstimmen, eine sekundäre Sortierung hinzufügen Regel zum alphabetischen Sortieren der Ergebnisse innerhalb jeder Prioritätsgruppe:
SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY <whatever>, word
Durch die Durchführung einer benutzerdefinierten Sortierung basierend auf der Position der Suchzeichenfolge können wir die Relevanz der Suchergebnisse erhöhen und das Benutzererlebnis verbessern.
Das obige ist der detaillierte Inhalt vonSo sortieren Sie MySQL-Suchergebnisse nach Relevanz: Beginnen Sie mit den Übereinstimmungen zuerst?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!