如何在Golang中同时迭代sql结果集

  • 本文关键字:迭代 sql 结果 Golang go
  • 更新时间 :
  • 英文 :


next()方法是顺序的,有没有办法同时迭代循环?

我有一个20万行的结果集,我正在按顺序循环,并对每一行进行逻辑运算,并希望将其拆分。

sql。从查询中返回的行不能同时使用(我相信)。

但你可以在野外完成大部分繁重的工作。

这里有一个例子(不工作,但关闭),在播放

package main
import "fmt"
import "sql"
type Row struct {
    x string
    y string
    z string
}
func processor(ch chan Row) {
    for row := range <-ch {
        // be awesome
    }
}
func main() {
    ch := make(chan Row)
    // two handler go routines (current processors)
    go processor(ch)
    go processor(ch)
    rows := db.Query("select x,y,z from whatever")
    for rows.Next() {
        var row Row
        if err := rows.Scan(&row.x, &row.y, &row.z); err != nil {
            // do something with error
        } else {
            ch <- row
        }
    }
}

最新更新