mysql - go - 如何使用 gorp select 获取空界面

标签 mysql go gorp

您好,我正在使用 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)

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

这会返回一个错误

select query failed gorp: select into non-struct slice requires 1 column, got 6

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

最佳答案

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

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

关于mysql - go - 如何使用 gorp select 获取空界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511920/

相关文章:

function.php 内的 PHP 代码片段

mysql - 如何查找一行不包含另一列中的值

google-chrome - 浏览器上的 `runtime/trace` 查看器

sql - gorp: "auto_increment"附近:语法错误

sql-server-2008 - sql/db 事务没有使用 ms sql 正确回滚

java - 运算符中的sql查询语句

php - Zend-1048 列 'member_login' 不能为空

go - Go中的动态函数调用

multithreading - 了解互斥行为

xml - go中将数组编码为base64