PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So suchen Sie, ob ein ganzes Wort in einem String in Postgres vorhanden ist

Sie können dafür einen regulären Ausdruck verwenden:

where title ~* '(\mphone\M)|(\msamsung\M)'

Das Obige gibt nur Werte zurück, bei denen phone oder samsung sind vollständige Worte. Die Regex-Modifikatoren\m und \M das Muster nur für ganze Wörter abgleichen.

Der Regex-Operator ~* macht dies unabhängig von der Groß-/Kleinschreibung. Der obige Ausdruck würde Samsung Phone zurückgeben oder Google Phone aber nicht Sam's House .

Wenn Sie weitere Wörter hinzufügen möchten, fügen Sie diese einfach mit dem „oder“-Operator | hinzu

where title ~* '(\mphone\M)|(\msamsung\M)|(\mbhat\M)'

Beachten Sie, dass diese Art der Suche nicht superschnell sein wird. Reguläre Ausdrücke sind teuer, sie können keinen Index verwenden.