Go MySQL没有为带有COUNT()的查询返回sql.ErrNoRows

Go MySQL没有为带有COUNT()的查询返回sql.ErrNoRows,go,Go,根据,当我们使用QueryRow()时,Scan()如果找不到行,将返回sql.ErrNoRows 例如:下面返回sql.ErrNoRows row := db.QueryRow("SELECT id from employee WHERE age=35").Scan(&id) 但下面并没有返回该错误 row := db.QueryRow("SELECT count(id) from employee WHERE age=35").Scan(&a

根据,当我们使用
QueryRow()
时,
Scan()
如果找不到行,将返回
sql.ErrNoRows

例如:下面返回
sql.ErrNoRows

row := db.QueryRow("SELECT id from employee WHERE age=35").Scan(&id)
但下面并没有返回该错误

row := db.QueryRow("SELECT count(id) from employee WHERE age=35").Scan(&count)
因此,当我们运行只有COUNT()的sql查询时,是否需要检查
sql.ErrNoRows

“如果找不到行,Scan()将返回sql.ErrNoRows。”COUNT返回一行,即使没有与查询匹配的行,返回行的单个列也将保留值0。因此,当将
QueryRow
SELECT COUNT
一起使用时,您不需要专门检查
sql.ErrNoRows
但是您仍然需要检查非nil错误,因为扫描返回一个错误的原因不是没有行。