Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Count number of rows in golang

Tags:

mysql

go

I want to display the number of rows from database using Go. How do I display number of rows?

count, err := db.Query("SELECT COUNT(*) FROM main_table")
like image 571
Отгонбаяр Ламжав Avatar asked Mar 21 '18 07:03

Отгонбаяр Ламжав


1 Answers

The query will return a row into the variable count. So the next you have to do is to read this row and assign the result into a new variable, using the function Scan(). This is how it works.

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)

The best option thought would be to use QueryRow() as you expect to read just one row. The code then will be.

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)
}
like image 194
chanioxaris Avatar answered Oct 02 '22 11:10

chanioxaris