我有一个Ecto.Query
和一个Repo
,这样我就可以调用Repo.all(query)
并获取结果。但是,结果不是我所期望的。
我如何看到Repo
将由生成的原始SQL Ecto.Query
?
您可以使用Ecto.Adapters.SQL.to_sql / 3:
iex> Ecto.Adapters.SQL.to_sql(:all, Repo, Post)
{"SELECT p.id, p.title, p.inserted_at, p.created_at FROM posts as p", []}
to_sql
如果您使用的是基于SQL的适配器,则该函数也可以在存储库中使用,名称为:
iex> Repo.to_sql(:all, Post)
{"SELECT p.id, p.title, p.inserted_at, p.created_at FROM posts as p", []}
查询可以是实现上述Ecto.Queryable协议的任何结构Post
(该模块是import的模块Ecto.Schema
)。一个Ecto.Query
还可以通过:
iex> query = Ecto.Query.where(Post, [p], p.views > 10)
iex> Ecto.Adapters.SQL.to_sql(:all, Repo, query)
{"SELECT p.id, p.title, p.inserted_at, p.created_at FROM posts as p WHERE p.views > $1", [10]}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句