尝试执行SQL片段:
subChannel.basicQos(10);
但它失败了,它会生成以下SQL和错误:
Repo.all from p in Posts, where: fragment("lower(?) in ?", p.title, ^["some-title"])
更新:解决方案
因此,经过大量试验,我想出了如何使用它:
SELECT p0."title" FROM "posts" AS p0 WHERE (lower(p0."title") in $1) [["some-title"]]
** (Postgrex.Error) ERROR (syntax_error): syntax error at or near "$1"
但仍然 - 为什么原始表达不起作用?看起来它也完全有效。
更新
在
之后应该有括号Repo.all from p in Posts, where: fragment("lower(?)", p.title) in ^["some-title"])
我试过了,也没用:
in
答案 0 :(得分:2)
1)是的,正确的方法是:
Repo.all from p in Posts, where: fragment("lower(?)", p.title) in ["some-title"])
2)原始查询不起作用,因为它生成错误的SQL语法。 它产生类似的东西:
... where lower(p.title) in ["some-title"] ...
正确的语法是:
... where lower(p.title) in ('some-title') ...