首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang SQLBoiler动态追加查询

Golang SQLBoiler动态追加查询
EN

Stack Overflow用户
提问于 2021-08-10 18:18:19
回答 1查看 127关注 0票数 0

我试图对我的Postgres数据库动态运行查询,但无法完全理解它。

我正在寻找的解决方案是一种可以动态设置查询的解决方案,可能是通过在整个代码中向最终查询添加参数,然后只执行查询的一个实例。

正如标题中提到的,我正在使用SQLBoiler与Postgres进行交互。

下面是我在伪代码中寻找的东西:

代码语言:javascript
复制
final_query := QueryMod{
    Where("(mt_mas = ? or mt_mem like ?) and mt_group = ?", uint(uid), `%"`+strconv.Itoa(uid)+`"%`, bool(mt_group_bool)),
}

if a == 1 {
    final_query = append(final_query, And(" and mt_important = ?", bool(false)))
} else {
    final_query = append(final_query, And(" and mt_ness = ?", bool(true)))
}

res_mt_count, err := models.MTs(
    final_query,
).All(CTX, DB)

感谢一路走来的帮助!:)

EN

回答 1

Stack Overflow用户

发布于 2021-08-11 19:35:37

mkopriva用以下解决方案解决了我的问题:

代码语言:javascript
复制
type QueryModSlice []qm.QueryMod

func (s QueryModSlice) Apply(q *queries.Query) {
    qm.Apply(q, s...)
}

func main() {
    mods := QueryModSlice{
        qm.Where("(mt_mas = ? or mt_mem like ?) and mt_group = ?", uint(uid), `%"`+strconv.Itoa(uid)+`"%`, bool(mt_group_bool)),
    }

    if a == 1 {
        mods = append(mods, qm.And(" and mt_important = ?", bool(false)))
    } else {
        mods = append(mods, qm.And(" and mt_ness = ?", bool(true)))
    }

    res_mt, err := models.MTs(mods).All(CTX, DB)

}

非常感谢!:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68731784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档