Ho una semplice lista di ~ 25 parole. Ho un campo varchar in PostgreSQL, diciamo che la lista è ['foo', 'bar', 'baz']
. Voglio trovare qualsiasi riga nel mio tavolo che abbia una di quelle parole. Questo funzionerà, ma mi piacerebbe qualcosa di più elegante.jolly PostgreSQL come per qualsiasi elenco di parole
select *
from table
where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')
Regex potrebbe accelerare l'operazione un po ': http://dba.stackexchange.com/questions/10694/pattern-matching-with-like- espressioni simili a regolari: in postgresql – approxiblue
Come fai a saperlo? la maggior parte della documentazione che ho letto dice che le regex sono più lente e un LIKE% ... – DestyNova
Secondo http://dba.stackexchange.com/a/10696/27757 'SIMILE A' è internamente tradotto in una ricerca regolare –