当前位置: 首页 > 面试题库 >

将Postgresql数组直接读取到Golang Slice中

易元青
2023-03-14
问题内容

我有一个查询,该查询返回一行,其中一行包含一个字符串数组(character varying[]):

{http://wp.me/p62MJv-Jc,http://tyrant.click/1LGBoD6}

有没有简单的方法可以直接将其读入Golang切片中?例如

var arr []string

for rows.Next() {
    rows.Scan(&arr)
    fmt.Println(len(arr))
}

产生:

0

问题答案:

正如Victor在原始帖子的评论中提到的那样,该帖子以的解释很好地回答了这个问题pq.Array()

直接从链接中获取:

要将Postgres数组值读入Go切片,请使用:

func getTags(db *sql.DB, title string) (tags []string) {
    // the select query, returning 1 column of array type
    sel := "SELECT tags FROM posts WHERE title=$1"

    // wrap the output parameter in pq.Array for receiving into it
    if err := db.QueryRow(sel, title).Scan(pq.Array(&tags)); err != nil

{
log.Fatal(err)
}

    return
}

我也已经在自己的项目中使用了此功能,因此可以确认它是否有效。



 类似资料:
  • 问题内容: 我需要读取UDP流量,直到达到超时为止。我可以通过在UDPConn上调用SetDeadline并循环直到出现I / O超时错误来做到这一点,但这似乎有些破绽(基于错误条件的流控制)。以下代码段似乎更正确,但不会终止。在生产中,这显然将在goroutine中执行;为了简单起见,它被编写为主要功能。 给定程序为什么不终止?基于https://gobyexample.com/select,h

  • 我目前正在尝试为我的不和谐服务器创建我自己的机器人。我希望一个用户能够键入命令**event,然后机器人将直接消息给该用户,并问它一些事件的问题,如标题,时间等。 我可以让机器人直接向用户发送消息,但我找不到如何让机器人读取用户返回的消息。 以下是我到目前为止的代码:

  • 问题内容: 我有以下代码 而且有效。但是首先将文件下载到当前目录的问题。是否可以直接在RAM中读取文件并将其解码为图像? 问题答案: 我建议使用io模块直接将文件读取到内存中,而根本不必使用临时文件。 例如: 如果您的数据是二进制的,也可以使用。

  • 问题内容: 假设我有一个名为取款的表(id,金额,user_id,状态)。 每当我开始提款时,流程如下: 验证用户是否有足够的余额(按收到的金额之和-取款金额之和计算) 插入行,其金额为user_id,status =``结束’‘。 通过gRPC调用第三方软件以发起提款(实际上是汇款),等待响应 如果我们收到肯定的答复,请立即更新状态为“已完成”的行;如果提款失败,则删除该条目。 但是,我在此流程

  • 问题内容: 在C ++中,如果我想读取输入直到EOF,则可以按以下方式进行操作 然后,我可以将这段代码作为./a.out <input.txt来运行。此代码的java等价物是什么? 问题答案: 你可以这样做:

  • 问题内容: 当输入零作为输入时,我需要停止询问整数输入,并立即开始求和。当我键入零时,我的程序不会停止。我需要它停止并开始汇总它收集的所有输入。 这是我所拥有的: ///////////////有效的最终代码。谢谢!公共类Inttosum { 问题答案: 您正在使用一种称为循环条件的东西,但是在循环中更新了变量。您可以使用循环。更改 像 使用 我也建议先打电话再打电话。而且,由于您不使用(只是),