更新时间:2026-07-28 GMT+08:00
处理结果集
执行SELECT语句查询数据后,可以使用type Rows接口和type Row接口对数据结果集进行处理。type Row接口用于处理单行结果,提供(r *Row)Scan(dest ...interface{})方法将数据扫描到指定的变量。type Rows接口用于处理多行结果,提供遍历方法(rs *Rows)Next()和数据扫描方法(rs *Rows)Scan(dest ...interface{})进行逐行扫描。
示例如下(完整示例请参考典型应用开发示例的示例一):
调用QueryRow方法查询单行数据后,使用type Row接口的Scan方法将这一行数据扫描到指定的变量。
- 定义变量,用于接收数据结果集。
var f1 int var f2 string var f3 float64 var f4 time.Time var f5 bool
- 使用type Row接口的Scan方法将单行数据扫描到指定的变量。
err = row.Scan(&f1, &f2, &f3, &f4, &f5) if err != nil { log.Fatal(err) } else { fmt.Printf("f1:%v, f2:%v, f3:%v, f4:%v, f5:%v\n", f1, f2, f3, f4, f5) }
调用Query方法返回多行数据后,使用for循环和type Rows接口的Next和Scan方法逐行将数据扫描到指定的变量。
- 定义变量,用于接收数据结果集。
var f1 int var f2 string var f3 float64 var f4 time.Time var f5 bool
- 使用for循环和type Rows接口的Next和Scan方法逐行将数据扫描到指定的变量。
for rows.Next() { err = rows.Scan(&f1, &f2, &f3, &f4, &f5) if err != nil { log.Fatal(err) } else { fmt.Printf("f1:%v, f2:%v, f3:%v, f4:%v, f5:%v\n", f1, f2, f3, f4, f5) } }
父主题: 开发步骤