为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用mysql通过选择查询获取行数

如何使用mysql通过选择查询获取行数

Go
UYOU 2021-11-15 15:51:34
我是 golang 的新手。我想从 MySQL db 创建登录验证。我想要一个像在 PHP 中的方法mysqli_num_rows($res) == 1......我尝试过len(rows)或rows.Column()@fmt.Println("No of rows are :", rows)但它不会......我尝试过的代码......(这是一个虚拟代码)rows, err := db.Query("select * from userLog where u_name = ? and u_pass = ?", uname, pswd)if err != nil {    log.Fatal(err)}fmt.Println("No of rows are :", rows)defer rows.Close()如果您有其他用于登录验证的解决方案,请建议并简要解释一下,请帮助我。
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

据我了解,您需要检查数据库中是否存在用户和密码。如果是这样,你可以这样做:


var isAuthenticated bool

err := db.QueryRow("SELECT IF(COUNT(*),'true','false') FROM userLog WHERE u_name = ? AND u_pass = ?", uname, pswd).Scan(&isAuthenticated)

if err != nil {

    log.Fatal(err)

如果数据库包含提供的用户和密码 isAuthenticated 将设置为 true。


查看完整回答
反对 回复 2021-11-15
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

如果你已经执行了一个查询db.Query("SELECT * FROM some_tbl")并且有一个rows迭代器,那么你不能在不迭代的情况下提取行数。如您所见,没有任何返回行数的内容

因此,您唯一可以做的就是进行查询以选择行数: db.Query("SELECT COUNT(*) FROM some_tbl")


查看完整回答
反对 回复 2021-11-15
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

这是在 go 中返回 MySQL 选择中的行数的一种相当有效的方法:


rows, selerr := db.Query(sql, StartDate, EndDate) // Query

if selerr != nil { 

    fmt.Fprint(w, selerr); 

    return 

}

count := 0

for rows.Next() { 

    count += 1 

}


rows, _ := db.Query(sql, StartDate, EndDate) // Query again - no error 


查看完整回答
反对 回复 2021-11-15
  • 3 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信