go - 我如何使用gorp select为空接口

时间:2016-02-19 18:06:20

标签: mysql go gorp

您好我正在使用gorp并且想要在不知道其架构的情况下对任何表使用select查询 因为我正在使用查询

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:select into non-struct slice需要1列,得到6

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

1 个答案:

答案 0 :(得分:-1)

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

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