gpt4 book ai didi

go - db.Query 是否返回 ErrNoRows?

转载 作者:行者123 更新时间:2023-12-01 22:32:50 24 4
gpt4 key购买 nike

当 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
}

最佳答案

sql.ErrNoRows未从 DB.Query 返回或 DB.QueryContext .第一次调用Rows.Next当结果集没有行时返回 false。

sql.ErrNoRows从对 Row.Scan 的调用返回在从 DB.QueryRow 返回的占位符行上或 DB.QueryRowContext . DB.QueryRow* 方法在出错时返回占位符行,而不是直接返回错误。

如果应用程序正在查找零行或一行,请使用 QueryRow 而不是 Query。

row := database.QueryRow("SELECT title FROM accountProject WHERE accountID=? AND MATCH(title) AGAINST(?)", accountID, query)
err := row.Scan( .... address of variables here ... )
if err == sql.ErrNoRows {
return errProjectDoesNotExist
} else if err != nil {
return err
}

关于go - db.Query 是否返回 ErrNoRows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60123848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com