基本上,在不知道查询的结果可能是什么的情况下,我想查询数据库,并返回这样的结构(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中的/sql获取列的Type?
我怀疑我想做的是
这有点像[医]平方中的代码示例,但不知道数据将被填充的结构。
发布于 2020-02-24 05:20:44
你应该可以这样做:
func printRows(rows *sql.Rows){
colTypes, err := rows.ColumnTypes()
for _,s := range colTypes {
log.Println("cols type:", s.DatabaseTypeName());
}
}发布于 2014-06-03 14:50:19
使用数据库/sql?没有(据我所知)。
但是您可以使用这段代码进行任意查询。来自json包的json.Marshall()将使用反射来确定打印值的正确方式,因此您可以拥有如下结构:
type Column struct {
ColumnName string
ColumnValue interface{}
ColumnType string
}然后使用reflect.TypeOf(someVariable).String()获取ColumnType的类型。
https://stackoverflow.com/questions/17863113
复制相似问题