2016-08-12 12 views

Odpowiedz

7

Od starasz się dopasować wielkość liter ma znaczenie wyrażenia, należy użyć ilike/2 który wykorzystuje SQL LIKE operator:

from m in Model, where: ilike(m.name, "%#{query}%") 

like/2 będą wykorzystywane do wrażliwej przypadku wyszukiwania.

Ecto nie obsługuje wyrażeń regularnych po wyjęciu z pudełka, ponieważ implementacje różnią się bardzo między różnymi bazami danych. To, co musisz zrobić, to zajrzeć do składni wyrażenia regularnego dla bazy danych, na którą kierujesz cel i samodzielnie zbudować tę część zapytania, używając Ecto fragment/1. W poniższym przykładzie, który przeszukuje dla wszystkich modeli pasujących /^Peter [A-Z]$/ wykorzystuje PostgreSQL's POSIX regex feature:

from m in Model, where: fragment('? ~ ?', m.name, '^Peter [A-Z]$') 
+0

Dzięki! Zapomniałem o tym wcześniej. –

Powiązane problemy