【问题标题】:Select list from list of IDs using persistent使用持久性从 ID 列表中选择列表
【发布时间】:2018-06-16 03:22:09
【问题描述】:

在我的应用程序中,我需要能够编写一个查询,该查询接受一个 ID 列表并返回每个记录的列表。

据我所知,yesod persistent page 我可以做类似的事情

selectList (UserId ==. 1 ||. UserId ==. 2 ||. UserId ==. 3) []

我相信这会返回一个包含用户 1、2 和 3 的列表,但是当我不知道该列表或在编译时它将持续多长时间时,我无法确定如何编写此查询。

我将如何使用 Haskell 持久化中的 ID 列表来选择记录列表。

【问题讨论】:

  • 你的意思是像selectList (UserId <-. [1..3]) []这样的东西吗?

标签: haskell haskell-persistent


【解决方案1】:

Persistent 有几个用于创建查询的组合器,您要查找的是 (<-.) :: PersistField typ => EntityField v typ -> [typ] -> Filter v

那么您的查询可以简化为

selectList [UserId <-. [1..3]] []

【讨论】:

  • 我得到了它的工作,但我不得不将其更改为selectList [UserId &lt;-. users] [],其中用户的类型为 [UserId]。如果您可以编辑答案,我会接受。
  • @qwertie 已修复,抱歉打错了
  • 它也不能是整数列表,必须是 UserId 列表或为模型 ID 创建的任何类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
相关资源
最近更新 更多