2014-10-09 12 views
6

Próbuję odzyskać wiele rekordów z moim DB z następującym zapytaniem:PostgreSQL ilike z wielu meczów w szynach ActiveRecord

User.where('name ilike ?','%thomas%') 

to działa prawidłowo. Teraz chcę, aby pobrać wiele rekordów jednocześnie i próbowałem (co wydaje się być niepoprawny składniowo):

User.where('name ilike any',['%thomas%','%james%','%martin%']) 

Co robię źle?

Tak więc, aby wyjaśnić: Chcę odzyskać wszystkie rekordy, które pasują do jednego z nazw, więc jego oświadczenie OR, którego szukam.

Odpowiedz

23

Można to zrobić przez

User.where('name ilike any (array[?])',['%thomas%','%james%','%martin%']) 
+0

dziękować za was szybką odpowiedź. Dokładnie to, czego szukałem. – Severin

+0

Dobra nauka dla mnie .. :-) +1 –

Powiązane problemy