gpt4 book ai didi

go - 如果行不存在,QueryRow().Scan() 返回错误

转载 作者:IT老高 更新时间:2023-10-28 13:06:52 27 4
gpt4 key购买 nike

我想从 sql 数据库中获取一行。我使用以下代码:

var name string
row := db.Con().QueryRow("SELECT name FROM users WHERE id = 2;")
err := row.Scan(&name)

if err != nil {
// log the error
}

例如:如果 id=2 的用户不存在,则方法 Scan 会返回错误。

问题:

当行不存在时,有没有办法避免这个错误?因为这是绝对正常的,我不想记录这样的错误。

我发现的唯一方法是使用Query而不是QueryRow,但是不方便因为我必须添加for rows.Next() { .. 每次我想获取单行时。

最佳答案

在记录之前只需检查您不想记录的错误:

var name string
row := db.Con().QueryRow("SELECT name FROM users WHERE id = 2;")
err := row.Scan(&name)

if err != nil && err != sql.ErrNoRows {
// log the error
}

关于go - 如果行不存在,QueryRow().Scan() 返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43091774/

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