Für eine geeignete Lösung können Sie entweder Ihr Datenbankdesign normalisieren oder, falls dies nicht der Fall ist, ziehen Sie die Volltextsuche in Erwägung .
Verwenden Sie für eine schnelle Lösung des vorliegenden Problems einen Übereinstimmung mit regulären Ausdrücken (~
)
oder drei einfache LIKE
Ausdrücke:
SELECT *
FROM subscriberfields
WHERE name ~ '(Khairpur|Islamabad|Karachi)';
Oder:
...
WHERE (name LIKE '%Khairpur%'
OR name LIKE '%Islamabad%'
OR name LIKE '%Karachi%')
Oder verwenden Sie ~*
oder ILIKE
für den Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung.
Da eine andere Antwort darauf hinwies:nie Verwenden Sie SIMILAR TO
:
- Verwendung von SIMILAR TO für eine Regex ?
- Musterabgleich mit LIKE, SIMILAR TO oder regulären Ausdrücken in PostgreSQL