如何在golang中将变量id传递给statement.Query()?

2023-12-10

我在 postgres 中有这个查询,它根据传递的参数查询 1 或 n 个用户:

select name, phone from clients where id in ('id1','id2')

现在,当我尝试在 golang 中使用它时,我在如何将这种类型的变量参数传递给 statements.Query() 函数时遇到了问题:

ids := []string{"0aa6c0c5-e44e-4187-b128-6ae4b2258df0", "606b0182-269f-469a-bb29-26da4fa0302b"}
rows, err := stmt.Query(ids...)

这会引发错误:Cannot use 'ids' (type []string) as type []interface{}

当我检查源代码查询时,它可以接收许多接口类型的变量:

func (s *Stmt) Query(args ...interface{}) (*Rows, error) {
    return s.QueryContext(context.Background(), args...)
}

如果我手动执行此操作,它会起作用:

rows, err := stmt.Query("0aa6c0c5-e44e-4187-b128-6ae4b2258df0", "606b0182-269f-469a-bb29-26da4fa0302b")

但当然我需要参数为 1 或更多,并且是动态生成的。

我正在使用 Sqlx 库。


正如我们在Query()方法方案以及错误消息中,该方法需要一个参数[]interface{} type.

func (s *Stmt) Query(args ...interface{}) (*Rows, error) {
    return s.QueryContext(context.Background(), args...)
}

在您的代码中,ids可变保持[]string数据。将其更改为[]interface{}所以它会满足Query()要求,然后就可以工作了。

ids := []interface{}{
    "0aa6c0c5-e44e-4187-b128-6ae4b2258df0",
    "606b0182-269f-469a-bb29-26da4fa0302b",
}
rows, err := stmt.Query(ids...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在golang中将变量id传递给statement.Query()? 的相关文章

  • 记录 http.ResponseWriter 内容

    Premise 我发现了类似的问题 但不适用于我的情况 因此请不要将其标记为重复 我在 Go 中有一个 HTTP 服务器 并且创建了一个中间件记录请求 响应时间 我也想记录响应 我用过httputil DumpRequest在一个名为的函数
  • 将 Websocket 消息发送到 Go 中的特定通道(使用 Gorilla)

    我对 Go 很陌生 并且发现自己使用套接字作为我的第一个项目 这是一个多余的问题 但我无法理解如何将 websocket 更新发送到 Go 中的特定通道 使用 Gorilla 我在用此链接中的代码示例 https github com go
  • Golang:使用像 Node.js 中那样的可读流从 PostgreSQL 数据库中选择几百万行

    我有大约 5000 万行的 PostgreSQL 表 我想编写 Go 代码来从该表中选择大约 100 万行 并以有效的方式处理它们 上次我使用了nodejs和这个NPM模块pg 查询流 https www npmjs com package
  • 是否可以在 Golang 中 pickle 结构实例

    我正在 Golang 中做一些机器学习 我现在碰壁了 我训练有素的分类器需要将近半分钟的时间来训练 并且想要保存分类器的该实例 这样我就不必每次都从头开始训练 在 Golang 中应该如何去做呢 仅供参考 我的分类器是一个结构 当我用 py
  • K8s更改配置映射并更新应用程序日志级别

    我想更改在 K8S 上运行的 Golang 应用程序的登录配置 我在本地尝试了以下代码 它按预期工作 我正在使用 viper 来监视配置文件更改 这是带有日志配置的配置图 apiVersion v1 kind ConfigMap data
  • Go 编程 - 使用指针绕过访问权限

    假设我的项目有以下层次结构 fragment fragment go main go 并且在fragment go我有以下代码 只有一个 getter 没有 setter package fragment type Fragment str
  • vscode 中的调试不会在断点处停止,调试器启动时显示“无法找到文件...”

    乌班图 vscode 1 62 1 去1 17 3 vscode go 扩展 v0 29 0 深入研究 v1 7 1 我是 vscode 和 Go 的新手 我有多年在 Eclipse 中调试 Java 应用程序的经验 我构建了一个小型多模块
  • 如何在 Visual Studio Code 中为 Golang 启用竞争检测器?

    我搜索了很多网页来找到我应该放入哪个短语settings json在 VS Code Golang 扩展 由 Microsoft 发布 中添加构建标志 在我的例子中是竞赛检测器 I added go buildFlags race 在扩展名
  • Golang Appengine 项目无法构建

    我有一个使用 golang 的应用程序引擎项目 我已经大约一年没有碰过了 我现在无法让它在之前构建的机器上构建 我收到以下错误 go app builder 解析输入失败 解析器 src golang org x net internal
  • 是否支持动态变量?

    我想知道Go中是否可以动态创建变量 我在下面提供了一个伪代码来说明我的意思 我将新创建的变量存储在切片中 func method slice make type for i 0 i lt 10 i var variable i i slic
  • 按引用或按值扫描功能

    我有以下代码 statement SELECT id from source where mgmt 1 var exists string errUnique dr db QueryRow statement mgmt Scan exist
  • nsq 无法通过连接到 nsqlookupd 来消费消息

    我尝试使用 docker compose 来运行 nsq docker compose yml如下 version 3 services nsqlookupd image nsqio nsq command nsqlookupd ports
  • 在函数中将通道作为参数传递的不同方法

    我正在阅读一些Go代码 并说了几种传递Go通道的不同方法 也许它们是相同的 但我想知道是否有任何区别 因为我无法在线找到文档 1 func serve ch lt chan interface do stuff 2 func serve c
  • 如何在golang模板上打印JSON?

    我需要在客户端有一个对象 所以我使用 json marshal 将其转换为 JSON 并将其打印到模板中 该对象被打印为转义 JSON 字符串 我期待它是var arr o1 o2 但它是var arr o1 o2 我知道我可以在客户端进行
  • 在 IntelliJ IDEA 中运行。多个文件和错误未定义:数据

    我想使用 IntelliJ IDE 社区版编写代码GO Go语言 我安装了正确的插件 并安装了构建应用程序所需的所有工具 我的应用程序包含以下两个文件 每个都在目录中 事件服务器 Main go Data go 如果我想使用 Run Ctl
  • 如何在C#中执行Go函数

    有没有办法从 C 执行 Go 函数 例如 对于 Python 我会使用 Ironpython 我知道我可以生成一个进程来执行 Go 脚本 但如果可能的话 我真的不想回退到这样的解决方案 Google 搜索没有显示任何内容 那么有什么方法可以
  • 我可以根据我正在构建的操作系统导入 Golang 包吗?

    假设我有一个基于哪个操作系统的 go 项目 在某些情况下是哪个发行版 我想使用 Systemd 客户端包 Upstart 客户端包 sysv 客户端包 launchd 客户端包 是否可以有选择地导入每个包 以便我只导入我正在构建的每个操作系
  • 如何从非英语字符串解析go中的月份

    我想将以下字符串解析为 go 中的日期 This item will be released on March 9 2014 我跟着this https stackoverflow com questions 14106541 go par
  • 错误“binary.Write:无效类型”是什么意思?

    下面显示的代码 我创建了一个结构类型并希望将其编码为二进制 但它显示binary Write invalid type main Stu错误 我读过一些类似的代码 但我找不到为什么我的代码不起作用 type Stu struct Name
  • 使用 OpenTelemetry 统一不同服务的范围

    我刚刚开始使用 OpenTelemetry 并为此创建了两个 微 服务 Standard and GeoMap 最终用户将请求发送到Standard服务 该服务又将请求发送到GeoMap在将结果返回给最终用户之前获取信息 我使用 gRPC

随机推荐

  • 使用正则表达式删除 JavaScript

    我无法使用 C 从 HTML 页面中删除所有 javascript 我有三个正则表达式 它们删除了很多 但也错过了很多 使用 MSHTML DOM 解析器解析 javascript 会导致 javascript 实际运行 这是我试图通过使用
  • Bootstrap / CSS - 输入、按钮和选择在同一行

    我试图使用 bootstrap css 将输入 按钮和选择放在同一行中 但是select 根据其内容大小 将转到下一行 如下所示 我能做些什么 这是 HTML 的部分 div class form inline div class form
  • {}.toString() 未捕获的语法错误:意外的标记

    当我在 chrome 开发工具中尝试时 它显示Uncaught SyntaxError Unexpected token 但是 如果当它分配给a var a toString a object Object 是什么造成了这种差异 是什么造成
  • CoffeeScript 的存在运算符如何工作?

    Coffeescript 使用存在运算符来确定变量何时存在 并且在咖啡脚本文档它表明something 将编译为something undefined something null但是我注意到我的咖啡脚本版本只是将其编译为something
  • 如何使用 Prolog 删除列表中的偶数

    我需要删除第一个列表中的所有偶数并将其余的保存到第二个列表中 我的第一个非工作方法是 remove even remove even H1 T1 H2 T2 H1 mod 2 0 remove even T1 remove even H1
  • 在SQL中批量插入.txt文件

    我正在尝试将 txt 文件导入高级查询工具 我使用的 SQL 客户端 到目前为止 我有 CREATE TABLE tb test id INTEGER name varchar 10 dob date city char 20 state
  • 使用 C# .NET 中的 XDocument 库删除内部节点,但不删除 xml 中的值

    我有以下 XML 文件 p span class screenitems Add span p 我要删除它 span 节点但是Add存在 所以最后看起来如下 p Add p 有没有好的 简单的方法来做到这一点 Use ReplaceWith
  • VS 2015许可证已过期

    我昨天 2015年7月21日 从我的MSDN帐户下载了VS 2015 enterprise 发布版 并将其安装在全新的W8 1 pro机器上 是的 遗憾的是 我无法将Win8 1 Pro升级到Enterprise https superus
  • “索引包失败”

    在克隆 git 存储库时 我收到一条我不太明白的错误消息 git clone email protected group07 Initialized empty Git repository in cygdrive C Users Mart
  • 拉取全局环境中具有特定属性的所有对象

    假设我有一个全局环境中的对象列表 我如何只提取那些具有特定属性集的内容 x1 lt 1 10 x2 lt 1 10 x3 lt 1 10 x4 lt 1 10 x5 lt 1 10 attr x1 foo lt bar attr x5 fo
  • 每次导入 Tensorflow 时都会发出警告 - “未找到 cudart64_101.dll”。有没有办法只消除这个警告?

    2021 01 26 17 13 35 314383 W tensorflow stream executor platform default dso loader cc 55 Could not load dynamic library
  • 使用迭代参数的 SSRS 创建报告

    我正在修改现有的报告 该报告设置为让您查看每个销售代表的统计信息 您可以通过更改参数来完成此操作sales rep在报告视图中 我需要修改报告 以便它可以为每个销售代表显示一个页面 然后 该数据将导出到 Excel 每个销售代表的统计数据将
  • 无法在 R 上加载 rJava

    我希望在 R x64 3 1 2 中加载 rJava 操作系统 Windows 8 1 64 位 虽然安装似乎工作正常 gt install packages rJava Installing package into C Users so
  • 使用 Rails 多态性进行嵌套注释

    我需要在 Rails 3 应用程序中构建一个嵌套评论系统 允许对许多模型 文章 帖子等 进行评论 并且正在讨论按照以下方式滚动我自己的解决方案这个帖子 有可用的宝石 例如acts as commentable with threading
  • 访问远程 bean 时 CORBA 内部出现异常

    在装有 Glassfish 4 0 和 JDK 1 7 55 的 Windows Server 上 我收到 NoClassDefFoundError 和 ClassNotFoundException 然后调用远程 bean 方法 Stand
  • Xpath:查找类包含空格的元素

    所以我有看起来像这样的元素 li class attribute li note the space li class attribute li 使用 xpath li class attribute 将获得第二个元素但不是第一个 如何获得
  • 数据表 - 数据表外部的搜索框

    我正在使用数据表 数据表网 并且我希望我的搜索框位于表格之外 例如在我的标题 div 中 这可能吗 您可以使用 DataTables api 来过滤表 因此 您所需要的只是您自己的输入字段 其中包含一个 keyup 事件 该事件会触发 Da
  • 使用 R 计算时间序列中的间隙大小

    假设我有一个包含时间序列的数据框 如下所示 Date value 2000 01 01 00 00 00 4 6 2000 01 01 01 00 00 N A 2000 01 01 02 00 00 5 3 2000 01 01 03 0
  • 本地部署和从应用商店部署时的不同应用行为

    从 Windows 应用商店 测试版 部署应用程序时 我遇到奇怪的问题 该应用程序被编写为 Windows Phone 8 1 RunTime 我有一个用 C C 编写的小型 Windows 运行时组件 用于检查文件是否存在 bool Fi
  • 如何在golang中将变量id传递给statement.Query()?

    我在 postgres 中有这个查询 它根据传递的参数查询 1 或 n 个用户 select name phone from clients where id in id1 id2 现在 当我尝试在 golang 中使用它时 我在如何将这种