当我查询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/

10-11 22:03
查看更多