Golang: 使用 JSON 展示 SQL Group By 结果
你可以使用 Golang 中的数据库查询结果映射到结构体,然后将结构体转换为 JSON 格式进行展示。下面是一个示例代码:
package main
import (
"database/sql"
"encoding/json"
"fmt"
"log"
)
type Result struct {
Name string `json:'name' `
Count int `json:'count' `
}
func main() {
// 假设有一个数据库连接 db 和一个查询语句 query
// db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database")
// query := "SELECT name, COUNT(*) as count FROM table_name GROUP BY name"
// 执行查询
rows, err := db.Query(query)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
// 创建一个切片用来保存查询结果
results := []Result{}
// 遍历查询结果
for rows.Next() {
// 创建一个用来接收每一行结果的结构体
result := Result{}
// 将查询结果映射到结构体
err := rows.Scan(&result.Name, &result.Count)
if err != nil {
log.Fatal(err)
}
// 将每个结果添加到切片中
results = append(results, result)
}
// 将结果转换为 JSON 格式
jsonData, err := json.Marshal(results)
if err != nil {
log.Fatal(err)
}
// 打印 JSON 数据
fmt.Println(string(jsonData))
}
在上面的示例代码中,我们首先定义了一个 Result 结构体,用来存储查询结果。然后执行查询语句,将每一行结果映射到 Result 结构体,并将每个结果添加到切片中。最后,使用 json.Marshal 函数将结果转换为 JSON 格式,并打印出来。
请注意,示例中的 db 和 query 变量需要根据你的实际情况进行设置。同时,你需要根据你的数据库驱动和数据库类型导入相应的包,并进行相应的连接和查询操作。
原文地址: https://www.cveoy.top/t/topic/pkoT 著作权归作者所有。请勿转载和采集!