2

嗨,我正在使用 gorp 并想对任何表使用选择查询,而实际上我不知道它的架构,我正在使用该查询

db, err := sql.Open("mysql", "root:1234@tcp(localhost:3306)/information_schema")
checkErr(err, "sql.Open failed")
dbmap := &gorp.DbMap{Db: db, Dialect: gorp.MySQLDialect{}}
var data []interface{}
_, err = dbmap.Select(&data, "select * from collations")
checkErr(err, "select query failed")
fmt.Println(data)

}

但是,这会导致错误,因为我只能将结构作为第一个参数传递给选择

这会返回一个错误

选择查询失败 gorp:选择到非结构切片需要 1 列,得到 6

建议我进行一些更正或任何其他替代方法,以便我可以对用户动态选择的任何表名使用选择查询

4

1 回答 1

-1

如果您不知道架构,请不要使用 GORP ... 为什么?因为 GORPs 是一个映射器,它需要一个和一个目标字段来知道如何处理数据,如果你不传递一个目标,那么 GORP 真的不知道该怎么做。

但是,您可以使用标准 SQL 包来执行此操作。有关更多信息,请参阅此答案:sql: scan row(s) with unknown number of columns (select * from ...)

于 2016-02-19T18:25:12.127 回答