Sta*_*ica 10 javascript pg-promise
我正在尝试在pg-promise的参数数组中传递一系列参数,如pg-promise文档中所建议的那样.
db.any("SELECT fieldname FROM table WHERE fieldname = $1 AND fieldname2 IN ($2)",
[1,[[1730442],[1695256]],[487413],[454336]]])
.then(function (data) {
console.log("DATA:", data); // print data;
})
.catch();
Run Code Online (Sandbox Code Playgroud)
但是它不起作用,我在参数列表之后返回了"缺失"错误.或者"运算符不存在:整数=整数[]]"错误,如果我将参数替换为:
[1,[1730442]]
Run Code Online (Sandbox Code Playgroud)
当然如果我像这样传递它,它的工作原理:
[1,1730442]
Run Code Online (Sandbox Code Playgroud)
当涉及其他参数时,它是传递值数组的正确方法吗?
我还尝试删除$ 2周围的括号,但没有成功.
vit*_*y-t 17
我是pg-promise的作者.
你的例子中有一些混乱......
您在查询中仅使用两个变量,但传入四个值:
1[[1730442],[1695256]][487413][454336]你的语法没有一个有效的JavaScript,因为你]最终没有使用匹配的开头,所以很难理解你究竟要传入的是什么.
然后为什么要再次将所有值包装在数组中?我相信它只是IN()声明中你想要的整数列表.
当您想要使用其中的值时WHERE IN(),它实际上不是您要传入的值的数组,而是以逗号分隔的值列表.
如果您将示例更改为以下内容:
db.any('SELECT fieldname FROM table WHERE fieldname = $1 AND fieldname2 IN ($2:csv)',
[1, [1730442,1695256,487413,454336]])
Run Code Online (Sandbox Code Playgroud)
您将获得正确的值列表.
也可以看看:
| 归档时间: |
|
| 查看次数: |
3708 次 |
| 最近记录: |