本文介绍了如何使用sqlx在切片中查询mysql?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在mysql数据库中查询表 IN
切片:
I want to query a table in mysql database for values IN
a slice:
var qids []int
//fill qids dynamically
err = database.SQL.Select("es,
"SELECT * FROM quote WHERE qid IN $1", qids)
if err != nil {
log.Println(err)
}
但我得到这个错误:
But I get this error:
sql: converting Exec argument #0's type: unsupported type []int, a slice
quotes []
我该如何解决这个问题?
How can I fix this?
推荐答案
sqlx有一个很好的帮手:中,我们只需要准备以参数和Rebind为参数的查询,如下所示:
sqlx has a great helper for that: In() we just have to prepare the query taking the args and Rebind, like this:
var qids []int
// fill qids dynamically
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
if err != nil {
log.Println(err)
}
// sqlx.In returns queries with the `?` bindvar, we can rebind it for our backend
//
query = database.SQL.Rebind(query) // database.SQL should be a *sqlx.DB
err = database.SQL.Select("es, query, args...)
if err != nil {
log.Println(err)
}
另外我建议你看看这里:有很多例子,包括 IN
Also I recommend you take a look here: http://jmoiron.github.io/sqlx/ there're a lot of examples including IN
这篇关于如何使用sqlx在切片中查询mysql?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!