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错误,因为扫描返回一个错误的原因不是没有行。