为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不知道列的情况下从表读取行到地图

如何在不知道列的情况下从表读取行到地图

Go
明月笑刀无情 2021-04-04 16:18:48
在我的golang应用程序中,我需要对MySQL执行SQL查询以获取单行并将结果放入map [string] string中,这些键是列名。但是我不知道列将是什么。查询就像SELECT * FROM mytable我使用“ database / sql”。我发现只有扫描功能db.QueryRow("SELECT * FROM mytable").Scan(&var1, &var2,...)但这不适用于我的情况。我不知道会有多少个变量。而且我还需要列名。是否可以使用database / sql?更新。我找到了解决部分问题的方法。如何从结果集中获取列名。rows, err := db.Query(sqlcommand)cols, err := rows.Columns()因此,我可以用来制作地图的钥匙。但是我仍然不知道如何获得价值。因为,值可以具有不同的类型。data = make(map[string]string)if rows.Next() {    columns := make([]interface{}, len(cols))    columnPointers := make([]interface{}, len(cols))    for i, _ := range columns {        columnPointers[i] = &columns[i]    }    err = rows.Scan(columnPointers...)    for i, colName := range cols {        // value is in columns[i] of interface type.        // How to extract it from here?         // ....        data[colName] = val    }}PS此问题不是“在mysql中获取表列名称?”的重复项。我想获取返回的数据集的列,而不仅仅是一个表。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信