Para una solución adecuada, normalice el diseño de su base de datos o, salvo eso, considere búsqueda de texto completo .
Para una solución rápida al problema en cuestión, use un coincidencia de expresión regular (~
)
o tres simples LIKE
expresiones:
SELECT *
FROM subscriberfields
WHERE name ~ '(Khairpur|Islamabad|Karachi)';
O:
...
WHERE (name LIKE '%Khairpur%'
OR name LIKE '%Islamabad%'
OR name LIKE '%Karachi%')
O usa ~*
o ILIKE
para coincidencias que no distinguen entre mayúsculas y minúsculas.
Ya que otra respuesta lo sugirió:nunca usar SIMILAR TO
:
- Uso de SIMILAR TO para una expresión regular ?
- Coincidencia de patrones con LIKE, SIMILAR TO o expresiones regulares en PostgreSQL