登录
首页 >  Golang >  Go问答

Golang 中无需扫描,直接从 rows 循环获取 JSON 数据

来源:stackoverflow

时间:2024-03-17 19:36:19 232浏览 收藏

在 Go 中处理数据库查询时,通常使用 `rows.scan()` 函数来获取每行的值。然而,可以通过使用 `FOR JSON` 子句直接从 `rows` 循环中获取 JSON 格式的数据。这消除了对 `rows.scan()` 函数的需求,简化了代码并提高了性能。

问题内容

我有一个处理数据库查询并返回行的函数。我正在使用 rows.next() 函数来循环和扫描每一行。为此,我使用 rows.scan() 函数。这是我的代码片段。

tsql := "SELECT * from Users;"

// Execute query
rows, err := db.QueryContext(ctx, tsql)
if err != nil {
    return -1, err
}

defer rows.Close()

// Iterate through the result set.
for rows.Next() {
    var name, location string
    var id int

    //Get values from row.
    err := rows.Scan(&id, &name, &location)
    if err != nil {
        return -1, err
    }

    fmt.Printf("ID: %d, Name: %s, Location: %s\n", id, name, location)
}

有没有办法不用扫描就能获取每行json格式的数据?谢谢


正确答案


使用下面的查询将给出 json 格式的输出,

SELECT * from Users FOR JSON AUTO;

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Golang 中无需扫描,直接从 rows 循环获取 JSON 数据》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>