登录
首页 >  Golang >  Go问答

如何使查询参数可选

来源:stackoverflow

时间:2024-04-14 22:18:32 500浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《如何使查询参数可选》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

在 go 中的 postgres 中,如何使查询参数可选?

在此示例中,status 是可选条件。如果没有传递 status,则将获取表记录中的所有行。

如何使查询参数 &d.status 成为可选

type QueryParams struct {
    Status string `json:"status"`
}

func (r repo) GetRecords(d *QueryParams) ([]*Records, error) {
    statusQuery := ""

    if d.Status != "" {
        statusQuery = " where status = $1 "
    }

    query := "select id, title, status from records " + statusQuery
    rows, err := r.db.Query(query, &d.Status)
}

解决方案


Query 是可变参数,因此您可以构建一个 []interface{} 来保存参数:

args := []interface{}{}

然后有条件地构建参数列表:

if d.status != "" {
    statusquery = " where status = $1 "
    args = append(args, &d.status)
}

运行查询时,使用 ... 展开参数:

rows, err := r.db.Query(query, args...)

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何使查询参数可选》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>