我试图对我的Postgres数据库动态运行查询,但无法完全理解它。
我正在寻找的解决方案是一种可以动态设置查询的解决方案,可能是通过在整个代码中向最终查询添加参数,然后只执行查询的一个实例。
正如标题中提到的,我正在使用SQLBoiler与Postgres进行交互。
下面是我在伪代码中寻找的东西:
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)感谢一路走来的帮助!:)
发布于 2021-08-11 19:35:37
mkopriva用以下解决方案解决了我的问题:
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)
}非常感谢!:)
https://stackoverflow.com/questions/68731784
复制相似问题