The error occurs because Row.Scan() expects at least one row, but your query returned zero results. Use QueryRow() to fetch a single expected row, or Query() with Next() to handle zero or multiple rows.
var id int
err := db.QueryRow("SELECT id FROM users WHERE name = $1", name).Scan(&id)
if err == sql.ErrNoRows {
// Handle missing user
} else if err != nil {
// Handle other errors
}