//在数据查询数据键值对形式输出
```
func Select() []map[string] string{
//初始化数据库并连接数据库
db_fb := InitDB()
sqlstr := "select * from "+ query_p.name + " where "+query_p.where+";"
rows, err := db_fb.Query(sqlstr)
//如果有错误输出错误信息
checkErr(err)
//构造scanArgs、values两个数组,scanArgs的每个值指向values相应值的地址
columns, _ := rows.Columns()//返回查询到的列名
scanArgs := make([]interface{}, len(columns))
values := make([]interface{}, len(columns))
for i := range values {
scanArgs[i] = &values[i]
}
record := make(map[string]string)
res := make([]map[string]string,0)
for rows.Next() {
//将行数据保存到record字典
err = rows.Scan(scanArgs...)
checkErr(err)
for i, col := range values {
if col != nil {
record[columns[i]] = string(col.([]byte))
}
}
res = append(res,record) /**问题应该出在这里***/
}
fmt.Println(res)
return res
}
```
```
输出:
map[code1:2 code2:331100000000 name:丽水市]
map[code1:2 code2:331100000000 name:丽水市]
map[code1:2 code2:331100000000 name:丽水市]
map[code1:2 code2:331100000000 name:丽水市]
...
后面是一样的总共38条数据,结果是错误的,理想数据应该是
map[code1:2 code2:230100000000 name:哈尔滨市]
map[code1:2 code2:230200000000 name:齐齐哈尔市]
map[code1:2 code2:230300000000 name:鸡西市]
map[code1:2 code2:230400000000 name:鹤岗市]
...
map[code1:2 code2:331100000000 name:丽水市]
```
丽水市这条是最后一条数据
后面每条都不一样。
请大家帮忙看看。谢谢大家.
有疑问加站长微信联系(非本文作者)