Tôi có một danh sách đơn giản gồm ~ 25 từ. Tôi có một trường varchar trong PostgreSQL, giả sử danh sách đó là ['foo', 'bar', 'baz']
. Tôi muốn tìm bất kỳ hàng nào trong bảng có bất kỳ từ nào trong số đó. Điều này sẽ làm việc, nhưng tôi muốn một cái gì đó thanh lịch hơn.Ký tự đại diện PostgreSQL THÍCH cho bất kỳ danh sách từ nào
select *
from table
where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')
Regex có thể tăng tốc độ này lên một chút: http://dba.stackexchange.com/questions/10694/pattern-matching-with-like- tương tự-to-or-regular-expressions-in-postgresql – approxiblue
Làm sao bạn biết? hầu hết tài liệu tôi đã đọc nói rằng regex chậm hơn và LIKE% ... – DestyNova
Theo http://dba.stackexchange.com/a/10696/27757 'SIMILAR TO' được dịch nội bộ sang tìm kiếm regex –