go查询mysql到list<map>

复制代码
func selects() {
    db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8&parseTime=True&loc=Local")
    checkErr(err)
    // 查询数据
    //查询数据,取所有字段
    rows2, _ := db.Query("SELECT * FROM people")
    //返回所有列
    cols, _ := rows2.Columns()
    //这里表示一行所有列的值,用[]byte表示
    vals := make([][]byte, len(cols))
    //这里表示一行填充数据
    scans := make([]interface{}, len(cols))
    //这里scans引用vals,把数据填充到[]byte里
    for k, _ := range vals {
        scans[k] = &vals[k]
    }
    i := 0
    result := make(map[int]map[string]string)
    for rows2.Next() {
        //填充数据
        rows2.Scan(scans...)
        //每行数据
        row := make(map[string]string)
        //把vals中的数据复制到row中
        for k, v := range vals {
            key := cols[k]
            fmt.Printf(string(v))
            //这里把[]byte数据转成string
            row[key] = string(v)
        }
        //放入结果集
        result[i] = row
        i++
    }
    //fmt.Println(result)
    for k, v := range result {
        fmt.Printf("第%d行", k)
        fmt.Println(v["id"] + "===>" + v["first_name"])
    }
    db.Close()
}
复制代码

 

posted @   wujf  阅读(1779)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示