代码之家  ›  专栏  ›  技术社区  ›  Karlom

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

  •  0
  • Karlom  · 技术社区  · 6 年前

    使用 sqlx ,我想知道查询mysql数据库是否返回空行:

    所以跟随 this ,我想出了

    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 尽管没有争吵。

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Evgeny A. Mamonov    6 年前

    var result model.Post
    err := 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)
    }