I'm using mysql2/promise to execute some database queries in my node script (AWS lambda function). I want to perform a delete where in query to delete multiple rows, but no matter how I bind the value I always seem to get the same error of "Column count doesn't match value count at row 1".
My simplified code looks like this:
const userIds = [45549, 46207];
const deleteQuery = "DELETE FROM user WHERE id IN (?)";
return await pool.query(deleteQuery, [userIds]);
I've tried different things to bind the value, i.e.:
return await pool.query(deleteQuery, [userIds.map(id => [id]]);
return await pool.query(deleteQuery, userIds.map(id => [id]);
But nothing seems to work. How am I supposed to bind an array value to a WHERE IN query?
Column count doesn't match value count at row 1
This is an INSERT
error, which should not be happening during DELETE
, unless there's a trigger.
Check if you have any DELETE
triggers on your user
table, and if these triggers are performing any malformed INSERT
statements.