天天看點

MySQL傳參map裡存list_go 連接配接mysql查詢出來的結果,用map存的話,有無序問題,

問題:如題

本來是第一行的,顯示成第二行之類。

請問如解決?

代碼如下:

package main

import (

"database/sql"

"fmt"

_ "mysqldriver"

)

func main() {

selects()

}

func checkErr(err error) {

if err != nil {

panic(err)

}

}

func selects() {

db, err := sql.Open("mysql", "root:[email protected](127.0.0.1:3306)/jcrm?charset=utf8")

checkErr(err)

// 查詢資料

//查詢資料,取所有字段

rows2, _ := db.Query("SELECT * FROM cd_gentuanyou limit 0,10")

//傳回所有列

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["gentuanyouid"] + "===>" + v["title"])

}

db.Close()

}