Truy vấn sẽ trả về một hàng trong số biến. Vì vậy, việc tiếp theo bạn phải làm là đọc hàng này và gán kết quả vào một biến mới, sử dụng hàm Scan()
. Đây là cách nó hoạt động.
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)
Lựa chọn tốt nhất được cho là sử dụng QueryRow()
như bạn mong đợi chỉ đọc một hàng. Sau đó, mã sẽ là.
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)
}