gpt4 book ai didi

mysql - Esqueleto:如何执行超过 16 列的查询?

转载 作者:行者123 更新时间:2023-11-29 06:08:20 26 4
gpt4 key购买 nike

基本上可以归结为是否有可能在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com