我正在使用node-postgres在node.js中构建一个应用程序。我不知道如何一次更新多个记录。
这是我的代码:
var status = 20;
var id = [23,12,43];
pool.connect(function(err, client, done)
{
if(err)
{
done();
console.log(err);
return res.status(500).send(json({ success: false, data: err}));
}
client.query("UPDATE myDatabase SET status=($1) WHERE id IN($2);", [status,id]);
但我遇到了问题 - 控制台:
events.js:160 扔掉//未处理的'错误'事件 ^
错误:整数的输入语法无效:“23,12,43”
在这种情况下我该怎么办?什么样的数据使用? var id的长度每次都不一样。
问候,拉法朗 编辑:我认为数据的更改将在javascript中工作,输入必须是23,12,43,而是[23,12,43],但我不知道如何制作。
答案 0 :(得分:1)
您似乎想要使用ANY
:
client.query("UPDATE myDatabase SET status=($1) WHERE id = ANY($2);", [status,id]);
这是由于Postgresql本身,而不是库:见this和this
另请参阅此问题:Oracle: '= ANY()' vs. 'IN ()'