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

有没有办法在golang中使用包database/sql获取列的类型?

有没有办法在golang中使用包database/sql获取列的类型?

Go
婷婷同学_ 2021-06-10 18:13:17
基本上,事先不知道查询的结果结构可能是什么,我想查询数据库,并返回这样的结构(json-y)// Rows[   // Row 1   [      { ColumnName: "id", Value: 1, Type: int },      { ColumnName: "name", Value: "batman", Type: string },      ...   ],   // Row 2   [      { ColumnName: "id", Value: 2, Type: int },      { ColumnName: "name", Value: "superman", Type: string },      ...   ]]有没有办法在golang中使用包database/sql获取列的类型?我怀疑我想做的是使接口数组与 Column() 的大小相同,然后为每一列确定它的类型,然后用指向该类型的指针填充数组,然后将数组传递给 Scan()这有点像sqlx 中的这个代码示例,但首先不知道数据将填充的结构。
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

你应该可以这样做:


func printRows(rows *sql.Rows){


    colTypes, err := rows.ColumnTypes()

    for _,s := range colTypes {

      log.Println("cols type:", s.DatabaseTypeName());

    }

}


查看完整回答
反对 回复 2021-06-21
  • 2 回答
  • 0 关注
  • 408 浏览
慕课专栏
更多

添加回答

举报

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