go - 使用 go sql 在 IN 条件占位符中传递数组数组
问题描述
介绍
当我尝试在 IN 条件下传递几个值时遇到问题。当我在 postgres 控制台中尝试查询时,它工作正常,但在 go 中执行时失败。
情况
我尝试执行的查询具有以下形式:
select *
from someTable
where (someTable.colA, someTable.colB) in ($1)
在控制台尝试
select *
from someTable
where (someTable.colA, someTable.colB) in ((val1a, val1b), (val2a, val2b))
完美无瑕,但当我尝试它时却没有
我试过的
唯一让我有所收获的是使用pq.Array
.
query := "select * from someTable where (someTable.colA, someTable.colB) in ($1)"
pgDb.Query(query, pq.Array([][]interface{}{{"030043B", 49}, {"030002B", 49}}))
我收到的错误是法语,但大致翻译它可能对应于input of composite type columns is not implemented
(原始消息l'ajout de colonnes ayant un type composé n'est pas implémenté
)。
我能做的最后一个解决方案是用我的参数在查询中手动替换 str ,但我宁愿避免。如果这很好,这是来自数据库的数据,在任何地方都没有用户输入,这里没有注入的选项。
感谢您的时间
解决方案
推荐阅读
- android - androidx 包未导入。(灰色。像未使用的进口)
- python - 如何遍历数据框中的列表?
- docker - Docker从文件中编写构建时间参数
- python - Python - 通过用户定义的函数解析 JSON 数据
- java - 用于登录的 WebSecurityConfigurerAdapter 的配置
- php - 为什么“single-{custom-posttype}.php”不起作用?
- python - 用于显示高值范围差异的 Python Colormap
- elasticsearch - Kibana“可用字段”未显示数组内的(字符串)字段
- microsoft-dynamics - Windows 重新启动后运行 Microsoft Dynamics NAV 实例但没有响应
- java - 实例化 groovy 类的正确方法