我正在尝试使用Ecto / postgres创建搜索查询。这是我的查询的第一部分:
query = from l in Log,
join: u in assoc(l, :user),
where: u.id == ^current_user.id,
select: l
用户可以在文本框中键入任意数量的术语(用空格分隔),然后使用这些术语过滤结果集。我正在使用String.split
将原始字符串转换为一组where子句(AND'd together),这些子句附加到查询中:
search_term
|> String.split()
|> Enum.map( fn(term) ->
query = from l in query,
where: fragment("comment ~* ?", ^term)
end)
除非此声明无效。我假设query
赋值仅存在于函数的范围内。命令式思维使我的思绪蒙上阴影。我如何以功能性的方式实现这一目标?
答案 0 :(得分:1)
我假设查询分配仅存在于函数范围内。
是的,确实。
您应该使用glBufferSubData()
,并将原始查询作为累加器的初始值传递:
Enum.reduce