gpt4 book ai didi

node.js - 带有命名参数的 `WHERE col IN`

转载 作者:行者123 更新时间:2023-11-29 13:14:52 25 4
gpt4 key购买 nike

在例子中如何使用parameterized queries with an IN clause ,语法如下:

const data = [1, 'two', 3, 'four'];

db.any('SELECT * FROM table WHERE id IN ($1:csv)', [data])
.then(data => {
...

我似乎无法让它对命名参数起作用:

db.manyOrNone('SELECT widget FROM widgets WHERE id IN ($(ids:list))', 
{ ids: [1, 2, 3] })

(我使用 :list 因为它看起来是 interchangeable:csv)。我尝试了各种组合,例如:

  • ($(ids):list)(“:”处或附近的语法错误
  • (${ids:list})(“$”处或附近的语法错误

我不断收到来自 Postgres 的无效语法错误。这受支持吗?或者我必须将参数作为数组传递并像示例中那样引用它们吗?

版本:

  • Postgres:9.5.7
  • pg-promise: 5.7.1

更新我将我的参数更改为 ... WHERE widget IN ($(ids:csv))... 现在它可以工作了,所以看起来 :list:csv 不可互换。

最佳答案

问题是您使用的是 pg-promise 的旧版本.当前版本是8.4.4,你用的是5.7.1

Alias :list 可与 :csv 完全互换,但它是在 v5.7.1 之后添加的

升级到最新版本,它也将与 :list 一起工作。

还假设当前文档中的所有内容都相应地引用了库的当前版本。

关于node.js - 带有命名参数的 `WHERE col IN`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50381949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com