Go, Golang : Go MySQL 的 fetchall?

0 投票
1 回答
1877 浏览
提问于 2025-04-18 02:52

我正在使用 go-mysql-driver 这个库,链接是 https://github.com/go-sql-driver/mysql

我想要在 Go 语言中实现类似于 Python 里的某些功能:

c = conn.cursor()
c.execute(sql)
result = c.fetchall()
for elem in result:
  list.append(elem[i])
return list

我想到的唯一方法是:

result, err := conn.Exec(query)
// func (db *DB) Exec(query string, args ...interface{}) (Result, error)

我想要遍历 Exec 方法的结果,然后获取数据。

1 个回答

2

如果你想要获取结果,应该使用 Query() 而不是 Exec()

rows, err := db.Query("SELECT name FROM users WHERE age=?", age)
if err != nil {
  log.Fatal(err)
}
defer rows.Close();
for rows.Next() {
  var name string
  if err := rows.Scan(&name); err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s is %d\n", name, age)
}

撰写回答