计算golang中的行数

时间:2018-03-21 07:12:54

标签: mysql go

我想使用Go显示数据库中的行数。如何显示行数?

count, err := db.Query("SELECT COUNT(*) FROM main_table")

1 个答案:

答案 0 :(得分:7)

查询将向变量count返回一行。所以接下来你要做的就是读取这一行并使用函数Scan()将结果分配到一个新变量中。这是它的工作原理。

rows, err := db.Query("SELECT COUNT(*) FROM main_table")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()

var count int

for rows.Next() {   
    if err := rows.Scan(&count); err != nil {
        log.Fatal(err)
    }
}

fmt.Printf("Number of rows are %s\n", count)

最好的选择是使用QueryRow(),因为您希望只阅读一行。那么代码就是。

var count int

err := db.QueryRow("SELECT COUNT(*) FROM main_table").Scan(&count)
switch {    
case err != nil:
    log.Fatal(err)
default:
    fmt.Printf("Number of rows are %s\n", count)
}