我想使用Go显示数据库中的行数。我该如何显示行数?
count, err := db.Query("SELECT COUNT(*) FROM main_table")
我想使用Go显示数据库中的行数。我该如何显示行数?
count, err := db.Query("SELECT COUNT(*) FROM main_table")
查询将把一行结果返回给变量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)
}
我注册了一个账号,只是为了分享这个经验,因为我的大型数据集在不断追加时会拖慢程序的速度。我想把rowcount
放在行中,我知道一定有类似的方法,只需要找到它。
SELECT
count(1) OVER(PARTITION BY domain_id) AS rowcount,
subscription_id,
domain_id,
...
FROM mytable
WHERE domain_id = 2020
我以前从未使用过这个命令,但它将添加共享此参数的结果集的计数。将其设置为查询WHERE
之一会使其成为总行数。