Заявката ще върне ред в променливата 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)
}