2016-08-12 30 views

回答

7

既然你試圖匹配不區分大小寫的短語,你應該使用ilike/2它使用SQL LIKE operator

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

like/2將被用於區分大小寫的搜索。

Ecto不支持正則表達式,因爲實現在數據庫之間變化很大。你需要做的是查看你的目標數據庫的正則表達式語法,並使用Ecto fragment/1自己構建查詢的這一部分。下面的示例搜索與/^Peter [A-Z]$/匹配的所有模型,使用PostgreSQL's POSIX regex feature

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

謝謝!有一天忘了接受這個。 –

相關問題