我試圖使用Ecto.Adapters.SQL.query
,它工作正常,但不適用於數組。例如該語句將失敗:如何在數組中使用Ecto.Adapters.SQL.query?
Ecto.Adapters.SQL.query Repo, "SELECT p.* FROM posts p WHERE p.title in ($1)",
[["title1", "title2"]]
錯誤:
** (ArgumentError) Postgrex expected a binary that can be encoded/cast to
type "text", got ["title1", "title2"]. Please make sure the value you are
passing matches the definition in your table or in your query or convert
the value accordingly.
UPDATE
有沒有簡單的方法來做到這一點,但它不是外生的限制,這是一個限制SQL數據庫/ PostgreSQL,more details and workaround。
很難相信,在2016年的SQL數據庫仍然固色等基本功能...
謝謝,是的,使用Query DSL可以做到這一點,但仍然 - 執行原始SQL的能力似乎對SQL庫非常重要。我想看到答案 - 如何去做。 –
@AlexeyPetrushin更新了答案 – JustMichael
但是如何將結果渲染到視圖中,即如何使用'Ecto.Adapters.SQL.query(MyApp.Repo,..'?如何將結果傳遞給視圖?謝謝。 –