db.Query 是否返回 ErrNoRows?

当 sql 查询预计不会返回任何结果时,我似乎无法从我的 db.query 中获取 ErrNoRows。


results, err := database.Query("SELECT title FROM accountProject WHERE accountID=? AND MATCH(title) AGAINST(?)", accountID, query)

if err != nil {

    if err == sql.ErrNoRows {

        return errProjectDoesNotExist

    }

    return err

}


翻阅古今
浏览 265回答 1
1回答

德玛西亚99

查询不返回值 sql.ErrNoRows。当结果集没有行时,对 Next 的第一次调用返回 false。值sql.ErrNoRows从ScanRow返回的占位符行上调用 Scan 返回。如果应用程序正在查找零行或一行,请使用 QueryRow 而不是 Query。row, err := database.QueryRow("SELECT title FROM accountProject WHERE accountID=? AND MATCH(title) AGAINST(?)", accountID, query)if err != nil {    return err}err := row.Scan( .... address of variables here ... )if err != nil {    if err == sql.ErrNoRows {        err = errProjectDoesNotExist    }    return err}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go