Skip to content

Instantly share code, notes, and snippets.

@trkrameshkumar
Created September 6, 2015 07:19
Show Gist options
  • Star 25 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save trkrameshkumar/f4f1c00ef5d578561c96 to your computer and use it in GitHub Desktop.
Save trkrameshkumar/f4f1c00ef5d578561c96 to your computer and use it in GitHub Desktop.
Get get number of rows using sql in golang
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
DB_USER = "ramesh"
DB_PASSWORD = "secret"
DB_NAME = "test_db"
)
func main() {
dbinfo := fmt.Sprintf("user=%s password=%s dbname=%s sslmode=disable",
DB_USER, DB_PASSWORD, DB_NAME)
db, err := sql.Open("postgres", dbinfo)
checkErr(err)
defer db.Close()
rows, err := db.Query("SELECT COUNT(*) as count FROM table_name")
fmt.Println("Total count:",checkCount(rows))
checkErr(err)
}
func checkCount(rows *sql.Rows) (count int) {
for rows.Next() {
err:= rows.Scan(&count)
checkErr(err)
}
return count
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
@fernandocoronatomf
Copy link

Hi guys,

I am using the function checkCount() and it works fine.
The thing is when I call it twice in a row, the second time it returns 0.

I guess rows is not reset, is there a easy way to make the method reusable ?
Sorry if it 's a dumb question, It's literally my second day with GoLang

@xiaopeng-han
Copy link

it is very goods!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment