- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本上可以归结为是否有可能在 esqueleto 中有一个返回超过 16 列的查询?
我有一个必须与之交互的遗留数据库,它需要连接具有 30-40 列的表,然后从可能的 80-100 列中挑选出我需要的 20 列,所以我不会提取大列,除非需要。似乎使用 esqueleto 我仅限于 16 列?有没有办法在没有孤儿实例的情况下克服这个问题?
提前致谢!
PS,如果需要一个人为的例子,我会提供一个。
更新
我在文档中发现你可以做元组的元组,这基本上允许我获得更多的 16 列,然后采用这些嵌套元组和模式匹配结果以将其转换为我需要的数据类型或使用个人根据需要设置值。
仅供引用
如果您查看 SqlSelect
的文档如果您查看这些实例,然后一直向右看,您会看到一个“提示”,它帮助我知道我可以做元组的元组。
最佳答案
您可以创建一个自定义数据类型来表示该查询的结果,它可以包含任意数量的字段。然后您需要为该数据实现相关的类型类(PersistEntity 似乎是主要的)。这也让您有机会为字段提供相关/有意义的名称,以帮助防止潜在的错误。
data MyResult
= MyResult
{ fieldOne :: SomeType
, fieldTwo :: OtherType
, ...
, fieldSixteen :: Text
}
而不是返回 (a, b, c, ..., e)
,您将返回 MyResult a b c ... e
。
为方便起见,您可能希望使用 Persistent 的实体定义准引用器来定义结果。您将希望以一种不会尝试为其生成迁移的方式使用该定义。
关于mysql - Esqueleto:如何执行超过 16 列的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962389/
是否可以使用 esqueleto 进行以下查询? DELETE Table1 FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ItemID 我试
我对 Haskell 还很陌生,目前正在尽最大努力防止我的大脑从内到外。我以这种方式定义了一个非常简单的数据库架构: share [mkPersist sqlSettings, mkMigrate "
在所有示例中,我都看到了 esqueleto 的结果被投影到元组列表或 entities records . 例如: previousLogItems do orderBy [des
我的数据类型定义为: data ComitteeView = CommitteeView { committeeId :: CommitteeId
假设我有以下模型: Person stackOverflowUser Bool age Int Maybe 使用 Esqueleto(和 Yesod),假设我想获取 Stack Ove
如何在 Esqueleto 中select ... from (select ...) join (select ...)? 我知道我可以使用 Persistent 中的 rawSql,但我想避免这种
我有一个包含教师、学校和学区的数据库架构。 TEACHERS 表具有可为空的 SCHOOL_ID 列(教师可能属于也可能不属于学校),SCHOOLS 表具有可为空的 DISTRICT_ID 列(学校可
我正在尝试使用 Esqueleto(版本 2.1.2.1)计算内部联接的行数。不幸的是,我的代码无法编译,我不明白为什么。我查看了以下如何执行此操作的示例,但无法弄清楚我做错了什么:example1
我对外部连接如何与 esqueleto 一起工作感到有点困惑。 我创建了以下查询(简化): select $ from $ \(rep `LeftOuterJoin` event) -> do
selectDistinct 似乎对我不起作用,这可能是一个简单的错误。查询: info do E.on (rnd E.^. RoundId E.==. h E.^. HoleRo
对于这么简单的查询 runDb . select . from $ \cell -> do where_ $ cell ^. CellCode ==. val "x" return cell
我一直在研究 Persistent 库以与 sql 数据库交互。假设我有一个包含食谱的数据库,其中包含食谱、成分和 RecIng 表。 我(诚然有限)对持久性的理解使我相信我应该像这样定义表: sha
我正在尝试将以下 SQL 转换为 Esqueleto: SELECT id, task_id, author_id FROM scenario INNER JOIN ( SELECT task_id
我一直在遵循 Yesod 的 SQL Joins 中的示例,并且我想向 Inner Join 示例添加一个 where_ 子句 - 它应该仅显示作者 ID 大于 1 的博客。 我认为我的错误可能是我正
基本上可以归结为是否有可能在 esqueleto 中有一个返回超过 16 列的查询? 我有一个必须与之交互的遗留数据库,它需要连接具有 30-40 列的表,然后从可能的 80-100 列中挑选出我需要
如何让 esqueleto 从 from 语句生成 SQL 字符串? toRawSql 的文档说“您可以打开持久的查询日志记录”。我尝试了我能理解的所有可能的 MonadLogger 形式,但它从未打
考虑到以下两个模型和 GET/articles/:slug/comments 请求,我想根据文章的 slug 检索属于文章的评论. Article json sql=articles slug
我一直在尝试找出一种明智的方法来使用持久性在 SQL 后端中表示 Haskell 求和类型。 我的目标 Haskell 数据类型符合 data Widget = FooWidget Int | Bar
我怎样才能写作Database.Esqueleto以模块化方式进行查询,这样在定义“基本”查询和相应的结果集之后,我可以通过添加额外的内部联接和 where 表达式来限制结果集。 此外,如何将返回实体
来自脚手架站点中人为的config/models: Inventory name Text description Text Container name Te
我是一名优秀的程序员,十分优秀!