for (var i in req.body.categories) {
db.query("DELETE FROM guide_categories WHERE NOT IN($1) AND guide_id = $1",[req.body.categories[i],req.params._id], function(err, data) {
if (err) console.log(err);
console.log('updated');
})
}
如果数组中不存在,我正在尝试删除,我正在从 postman 那里传递数组,如 categories:["3","2","1"]
。如何做到这一点??
最佳答案
3 个错误:
category
前面的列名(IN
?)查询中缺少,使语句成为非法语法。您正在使用相同的参数
$1
两次。第二个应该是$2
.IN()
构造需要值列表或子查询,不是数组。传递数组时,使用<> ALL()
相反。
这个查询应该有效:
DELETE FROM guide_categories
WHERE category <> ALL($1)
AND guide_id = $2;
不过要小心 NULL 值!
详情:
关于node.js - 如果postgresql中不存在如何删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48063747/