为了账号安全,请及时绑定邮箱和手机立即绑定

如何打印查询产生的多个字段?

如何打印查询产生的多个字段?

Go
肥皂起泡泡 2021-06-01 17:53:32
我正在尝试学习如何使用database/sql带有go-sql-driver的包。我编写了以下简单程序并且它可以工作,但是我无法弄清楚如何打印多个字段。该数据库wiki1具有三个字段id,title和body。我查询“title1”,它是值之一,但我想打印“title”和“body”的值。我这个怎么办package mainimport (    "database/sql"    "fmt"    _ "github.com/go-sql-driver/mysql")func main() {    db, err := sql.Open("mysql", "root:Password1@/wiki1")    if err != nil {        fmt.Println(err)        return    }    defer db.Close()    st, err := db.Prepare("SELECT title FROM page WHERE title=?")    if err != nil {        fmt.Println(err)    }    rows, err := st.Query("title1")    if err != nil {        fmt.Println(err)    }    for rows.Next() {        var title, body string        if err := rows.Scan(&title); err != nil {            fmt.Println(err)        }        fmt.Printf("%s\n", title)    }    if err := rows.Err(); err != nil {        fmt.Println(err)    }}
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

要阅读body和title而不仅仅是title,请首先更改语句。


改变


st, err := db.Prepare("SELECT title FROM page WHERE title=?")


st, err := db.Prepare("SELECT body, title FROM page WHERE title=?")

然后改变读数。改变


    var title, body string

    if err := rows.Scan(&title); err != nil {

        fmt.Println(err)

    }


    var title, body string

    if err := rows.Scan(&body, &title); err != nil {

        fmt.Println(err)

    }

这将读取两列。


要打印字段,您可以执行


fmt.Printf("title: %s\nbody: %s\n", title, body)

您将找到有关使用 database/sql 进行查询的更多详细信息,请阅读此相关问题


查看完整回答
反对 回复 2021-06-21
  • 1 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信