首页 >后端开发 >Golang >如何使用 SQLx 的 In() 函数通过 ID 切片查询 MySQL?

如何使用 SQLx 的 In() 函数通过 ID 切片查询 MySQL?

Susan Sarandon
Susan Sarandon原创
2024-11-28 09:54:10716浏览

How to Use SQLx's `In()` Function to Query MySQL with a Slice of IDs?

使用 SQLx 通过切片中的 IN 查询 MySQL

在 SQLx 中,需要查询存储在切片中的值的表。这可以通过利用 In() 辅助函数来实现。

代码示例

要解决给定的错误,可以使用以下代码片段:

var qids []int

// Populate qids dynamically

query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
if err != nil {
    log.Fatal(err)
}

database.SQL := sqlx.MustConnect("driver_name", "dsn")
query = database.SQL.Rebind(query)  // Assuming database.SQL is a *sqlx.DB

err = database.SQL.Select(&quotes, query, args...)
if err != nil {
    log.Fatal(err)
}

功能

  • In() 函数通过获取参数并重新绑定来准备查询
  • Rebind() 将查询转换为针对特定数据库后端使用适当的绑定变量。
  • 通过组合 In() 和 Rebind(),准备好查询并优化执行.

其他资源

为了进一步参考,以下文档是推荐:

  • SQLx 文档:http://jmoiron.github.io/sqlx/
  • In() 函数文档:https://godoc.org/github.com/ jmoiron/sqlx#In
  • Rebind() 函数文档: https://godoc.org/github.com/jmoiron/sqlx#Rebind

以上是如何使用 SQLx 的 In() 函数通过 ID 切片查询 MySQL?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn