За правилно решение или нормализирайте дизайна на вашата база данни или, като изключим това, помислете за пълнотекстово търсене .
За бързо решение на проблема използвайте съвпадение на регулярен израз (~
)
или три прости LIKE
изрази:
SELECT *
FROM subscriberfields
WHERE name ~ '(Khairpur|Islamabad|Karachi)';
Или:
...
WHERE (name LIKE '%Khairpur%'
OR name LIKE '%Islamabad%'
OR name LIKE '%Karachi%')
Или използвайте ~*
или ILIKE
за съпоставяне без разлика на главни и малки букви.
Тъй като друг отговор го предложи:никога използвайте SIMILAR TO
:
- Използване на SIMILAR TO за регулярен израз ?
- Съвпадение на шаблони с LIKE, SIMILAR TO или регулярни изрази в PostgreSQL