0

I'm building an app in node.js using node-postgres. I don't know how to update more than one record at once.
Here is my code:

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]);

But I've got a problem - console:

events.js:160 throw er; // Unhandled 'error' event ^

error: invalid input syntax for integer: "23,12,43"

What can I do in that case? What kind of data use? the length of var id will be not the same every time.

Greetings, Rafał
EDIT: I think that a change of data will work in javascript, the input must be 23,12,43, but instead is [23,12,43] but I don't know how to make that.

Rafalsonn
  • 430
  • 7
  • 23

1 Answers1

1

It looks like you want to use ANY:

client.query("UPDATE myDatabase SET status=($1) WHERE id = ANY($2);", [status,id]);

This is due Postgresql itself, not the library: see this and this

See also this question: Oracle: '= ANY()' vs. 'IN ()'

rpadovani
  • 7,101
  • 2
  • 31
  • 50