【问题标题】:Is it possible to chain several Select clauses with gorm?是否可以将多个 Select 子句与 gorm 链接起来?
【发布时间】:2021-04-14 08:12:44
【问题描述】:

我知道我可以使用 gorm 链接多个 Where 子句,但我可以对多个 Select 子句做同样的事情吗?

我尝试过这样的事情,但没有运气:

query.Select("field1, field2").Select("field3").Find(&models)

事实上,我需要根据特定条件链接不同的选择子句。如何做到这一点?

【问题讨论】:

  • 我不确定这是否可能。你可以传递一段字符串来选择 Select([]string{“field1”}) ,你可以有条件地构建这个数组然后传入?

标签: go go-gorm


【解决方案1】:

链接多个Select() 调用将不起作用,因为它只会应用最后一个调用。因此,在您的示例中,查询将如下所示:

SELECT "field3" FROM "model";

Select() 也接受[]string,因此,将代表您需要的字段的字符串切片到SELECT,并在某些条件下附加到其他列:

selects := []string{"field1", "field2"}

if condition {
    selects = append(selects, "field3")
}

query.Select(selects).Find(&models)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2021-05-25
    • 1970-01-01
    相关资源
    最近更新 更多