Tengo una lista simple de ~ 25 palabras. Tengo un campo varchar en PostgreSQL, digamos que la lista es ['foo', 'bar', 'baz']
. Quiero encontrar cualquier fila en mi mesa que tenga alguna de esas palabras. Esto funcionará, pero me gustaría algo más elegante.comodín de PostgreSQL LIKE para cualquiera de una lista de palabras
select *
from table
where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')
expresión regular puede acelerar este proceso un poco: http://dba.stackexchange.com/questions/10694/pattern-matching-with-like- similar-to-or-regular-expressions-in-postgresql – approxiblue
¿Cómo lo sabes? la mayoría de la documentación que he leído dice que las expresiones regulares son más lentas y un LIKE% ... – DestyNova
Según http://dba.stackexchange.com/a/10696/27757 'SIMILAR A' se traduce internamente a una búsqueda de expresiones regulares –