Ric*_*wis 4 javascript arrays node.js pg
使用pg在我申请的NodeJS我希望能够到一个数组传递给函数,这样我可以使用IN的语句作为我查询的一部分
例子
async function myMethod(array) {
// array looks like [ '83', '82', '54', '55', '79' ] for example
let response;
try {
response = await pool.query("SELECT * FROM fixtures WHERE id IN($1)", [array]);
} catch (e) {
console.log(e);
}
return response.rows;
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
{ error: invalid input syntax for integer: "{"83","82","54","55","79"}"
Run Code Online (Sandbox Code Playgroud)
我该如何在此处构建我的查询?
您最好的选择是:
pool.query("SELECT * FROM fixtures WHERE id IN($1:list)", [array]);
// [1,2,3]?"SELECT * FROM fixtures WHERE id IN(1,2,3)"
Run Code Online (Sandbox Code Playgroud)
当变量以 结尾时:list,它被格式化为逗号分隔值列表,每个值根据其 JavaScript 类型格式化。
您需要这样做的原因是默认情况下,数组被格式化为 PostgreSQL 数组,正如您在花括号中看到的那样。
注意:这是在 v7.5.1 中添加到pg(或者更确切地说,pg-promise)。如果您使用的是早期版本,请$1:csv改用。
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |