package main

import (
	"database/sql"
	"encoding/json"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	// 连接到MySQL数据库
	db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/test4")
	if err != nil {
		panic(err.Error())
	}
	defer db.Close()

	// 定义变量
	name := 1231321

	// 拼接SQL语句
	sql := fmt.Sprintf("SELECT * FROM users WHERE name = %v", name)

	// 执行SQL查询
	rows, err := db.Query(sql)
	if err != nil {
		panic(err.Error())
	}
	defer rows.Close()

	// 定义一个切片,用于存储查询结果
	var data []map[string]interface{}
	// 遍历查询结果
	for rows.Next() {
		var name string
		var number string
		err = rows.Scan(&name, &number)
		if err != nil {
			panic(err.Error())
		}
		// 定义一个map,用于存储每一行的数据
		row := make(map[string]interface{})
		row["name"] = name
		row["number"] = number

		fmt.Println(name, number)
		// 将map存储到切片中
		data = append(data, row)
	}

	// 将切片转换为JSON格式
	jsonData, err := json.Marshal(data)
	if err != nil {
		panic(err.Error())
	}
	fmt.Println("我是切片格式", data)
	// 输出JSON格式数据
	fmt.Println("我是json格式", string(jsonData))
}

效果