英文:
How to pass the empty interface
问题
我有一个带有接口作为参数的sqlx查询函数,现在我想使用原始的查询字符串,如何省略这个接口参数?
func QuerySlice(query string, data interface{}) error {
q := queryString(query, data)
}
// 如果传递数据
data := struct {
id string `db:"id"`
}{
Id: id,
}
QuerySlice(query, data)
// 查询的SQL语句是
SELECT
*
FROM
table
WHERE
id = :id
// 现在我想要原始的SQL语句
SELECT
*
FROM
table
WHERE
id = 'XXX'
// 如何传递数据接口以省略此参数?
要省略接口参数,你可以将data
参数设置为nil
,这样在调用queryString
函数时就不会使用它。修改后的代码如下:
func QuerySlice(query string, data interface{}) error {
q := queryString(query, nil)
}
// 调用时将data参数设置为nil
QuerySlice(query, nil)
这样就可以使用原始的SQL语句进行查询了。
英文:
I have a sqlx query function with interface as passing parameter, now i want to using the raw query string, how to omit this interface parameter?
func QuerySlice(query string, data interface{}) error {
q := queryString(query, data)
}
// If pass the data
data := struct {
id string `db:"id"`
}{
Id: id,
}
QuerySlice(query, data)
// The query sql is
SELECT
*
FROM
table
WHERE
id = :id
// Now i want the raw sql
SELECT
*
FROM
table
WHERE
id = 'XXX'
// How to pass the data interface to omit this parameter
答案1
得分: 2
如果你正在使用NamedExec
,你可以将一个空的映射传递给sqlx:
QuerySlice(rawQuery, map[string]interface{}{})
英文:
If you are using NamedExec
, you could pass a empty map to sqlx
QuerySlice(rawQuery, map[string]interface{}{})
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论