如何使用sqlx检查行是否存在?

使用sqlx,我想知道查询 MySql 数据库以了解对 MySql 的查询是否返回空行:

所以在这之后,我想出了

var result model.Post

err := database.SQL.Get(&result, "SELECT * FROM post WHERE post_id=? AND user_id=? LIMIT 1", postID, userID)

if err == sql.ErrNoRows { 

    log.Println(err)

    log.Println("post not found")

} else { 

    log.Println("post found")

}

但我总是得到post found,尽管事实上没有行。


这里可能有什么问题,我该如何解决?


千万里不及你
浏览 108回答 1
1回答

繁花如伊

如果找到行错误将为零这是工作示例:var result model.Posterr := database.SQL.Get(&result, "SELECT * FROM post WHERE post_id=? AND user_id=? LIMIT 1", postID, userID)switch err {case nil:    log.Printf("user found: %+v\n", user)case sql.ErrNoRows:    log.Println("user NOT found, no error")default:    log.Printf("error: %s\n", err)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go