对于Query而言,没有数据是不会返回error,同时sql.rows也没有返回关于长度的属性,因此只能自己遍历rows属性,这是比较操蛋的事情,
对比而言QueryRow就相对于友好一点,如果没有返回结果,error的值会是sql.ErrNoRows,因此,判断这个值就能得到数据库中是否有我们需要的那个数据.
var name string err := db.QueryRow(`select name from user where uid=7`).Scan(&name) //db为sql.DB if err == sql.ErrNoRows { log.Print("没有结果") } else { log.Print("youjieguo:",name) }