首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用mysql通过select查询获取行数

如何使用mysql通过select查询获取行数
EN

Stack Overflow用户
提问于 2015-10-10 23:16:34
回答 6查看 21.1K关注 0票数 9

我是新来戈朗的。我想从MySQL数据库创建一个登录验证。我想要一个像PHP mysqli_num_rows($res) == 1那样的方法...我尝试过len(rows)rows.Column() @fmt.Println("No of rows are :", rows),但它不能...我试过的代码。(它是一个虚拟代码)

代码语言:javascript
复制
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()

如果你有另一个登录验证的解决方案,那么请建议并简要解释一下,请帮助我。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-10-11 05:55:16

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

代码语言:javascript
复制
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。

票数 9
EN

Stack Overflow用户

发布于 2016-06-12 07:03:34

如果您已经执行了一个查询db.Query("SELECT * FROM some_tbl"),并且有一个rows迭代器,那么如果不遍历它,就不能提取行数。如你所见,there nothing that returns the number of rows

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

票数 6
EN

Stack Overflow用户

发布于 2017-02-09 05:50:09

下面是在go中返回MySQL select中的行数的一种相当有效的方法:

代码语言:javascript
复制
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 
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33055527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档