登录
首页 >  Golang >  Go问答

(GoLANG) 如何将 SQL 查询结果中的行扫描到字符串数组指针中

来源:stackoverflow

时间:2024-03-15 18:03:23 277浏览 收藏

Go 语言中处理 SQL 数据库时,通过循环技术可以将查询结果行扫描到字符串数组指针中。首先,使用 `Query` 函数执行查询并获取行集。然后,使用 `Next` 函数逐行遍历行集。对于每行,使用 `Scan` 函数将行数据扫描到结构体或切片中。结构体或切片应包含用于存储列值的字段。通过这种循环技术,可以有效地从 SQL 查询结果中提取数据并将其存储在 Go 语言数据结构中。

问题内容

我对通过 go 处理 sql 数据库还很陌生。我有一个实例,我正在将数据库连接中的行扫描到实例化切片中的嵌套结构的切片中。但似乎无法正确执行它。是否有一些循环技术或参考资料在 golang 中有用。我已经提供了示例代码,并且可以提供其他任何内容。连接池已建立,只有当我去扫描行时,我的程序才会崩溃。所以我的问题是,如果我想插入多行(4 行和 2 列)到(老虎和狮子)对象(列)中,我将如何循环并使用 行来执行此操作.扫描??

rows, err := db.Query(`Query`)

if err != nil {
		//error
		return 
	} else {
		// logging
	}
}

for rows.Next() {
		ref := &structurre{}

		err := rows.Scan(&ref.number, &ref.animal[0].tiger, &ref.animal[o].lion)
		if err != nil {
			logEntry.Info(err)
			return details, err

		}
		details = append(details, ref)
}
  
type structure struct {
 number string
 animal []*zoo
}

type zoo struct {
  tiger string
  lion string
}

解决方案


也许您正在寻找这样的东西:

type zoo struct {
    tiger string
    lion  string
}

type structure struct {
    number string
    animal []*zoo
}

var ref []structure

rows, err := db.QueryContext(ctx, `query`, `args...`)

if err != nil {
    //error
    return err
}
// logging

for rows.Next() {
    var scans structure
    err = rows.Scan(&scans.number, &scans.animal[0].tiger, &scans.animal[0].lion)
    if err != nil {
        fmt.Println(err)
        if err == sql.ErrNoRows {
            fmt.Println("No Rows found")
        }
        return err

    }
    ref = append(ref, scans)
}

今天关于《(GoLANG) 如何将 SQL 查询结果中的行扫描到字符串数组指针中》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>