go - 如何检查 pgx.Row 是否为空

标签 go

我想检查数据库是否返回了某些内容

rows, err := r.db.Query(r.ctx, getFilmCastQuery, FilmId)
if err == pgx.ErrNoRows {
    logs.LogError(logs.Logger, "films_postgresql", "GetFilmCast", err, err.Error())
    return nil, domain.ErrNotFound
}

但是如果我这样写,即使从数据库返回null,错误也总是nil

最佳答案

pgx.ErrNoRows仅在使用QueryRow时返回。

实现是here .

使用Query时处理未找到结果的唯一方法是在rows.Next()循环后检查 slice 长度是否等于0。

关于go - 如何检查 pgx.Row 是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77422237/

相关文章:

windows - GoSublime - 可以在代码完成弹出窗口旁边显示文档吗?

c - 将 *C.uint8_t 转换为 []uint8 是否安全?

mysql - 使用 golang 连接到 docker mysql

go - 根据选择的使用情况,向无缓冲 channel 写入两次会导致不同的结果。为什么?

xml - 使用 Unmarshal 在 Go 中获取 XML 命名空间前缀

android - 如何使用 go 启动我的 android 模拟器?

go - 创建一个具体类型的 slice 并转换到其各自的接口(interface)

ssl - Golang 中的 TLS 连接问题

go - Fprint/Fprintf与conn.Write之间的区别

node.js - 如何修复 NodeJS 未充分利用 CPU 内核?