当我查询MySQL数据库中的行时,我只是使用database/sql
Go程序包插入的,我没有得到任何数据。
例如:
db := sql.Open("mysql", host)
_, err = db.Query("INSERT INTO users(id, name) VALUES(1, 'John')")
if err != nil{
panic(err)
}
rows, err := db.Query("SELECT id FROM users WHERE name='John'")
if err != nil{
panic(err)
}
var id int
results.Scan(&id)
fmt.Println(id)
输出:0
最佳答案
在调用rows.Next
之前,您需要调用Scan
将内部指针前进到第一个结果。
通常,您的代码应如下所示:
rows, err := db.Query("SELECT id FROM users WHERE name='John'")
// ...
for rows.Next() {
rows.Scan(&id)
}
关于mysql - SQL不返回数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/66285245/