Wir wollen oft nach Text suchen, unabhängig von der Anzahl der Leerzeichen, Leerzeichen und Buchstaben.
Nur trimmen, Kleinbuchstaben und ersetzen Sie alle Multiple Nicht-Wort-Zeichen für ein Leerzeichen.
SELECT regexp_replace(trim(lower('Here is a long text , with many white spaces AND different character sensitive')),'\W+',' ','g') t
Rückkehr: hier ist ein langer Text mit vielen weißen Flecken und anderen Charakter empfindlich
Hier wird die Verwendung für die Suche ist. Nur die Reihenfolge der Wörter ist wichtig, nicht mehr. Und das ist schön.
select * from (
SELECT regexp_replace(trim(lower('Here is a long text , with many white spaces AND different character sensitive')),'\W+',' ','g') t
) as o
where t= regexp_replace(trim(lower('Here is a LonG TEXT , with mANY white ^ spaces AND different character sensiTive')),'\W+',' ','g')
Rückkehr: hier ist ein langer Text mit vielen weißen Flecken und anderem Charakter empfindlich
Garbage in Daten und Junk in der Abfrage, aber es findet es immer noch richtig.
PostgreSQL oder MySQL? Die beste Lösung kann in jedem Fall anders sein. Zu versuchen, etwas zu schreiben, das in beiden funktioniert, ist normalerweise ein Rezept für eine langsame Abfrage. –