不等于在postgresql查询中不起作用

时间:2018-01-08 05:36:07

标签: node.js postgresql postman

if (req.body.positionDetails && req.body.positionDetails.length > 0) {
 let total = req.body.positionDetails.length;
  for (let i = 0; i < total; i++) {
  db.query('SELECT * FROM position WHERE position <> $1',[req.body.positionDetails[i].position],function(err,p) {
    console.log(p.rows)
  });
 }
}

它正在从数据库中选择所有值而不检查条件。怎么解决这个? 数据就像 "positionDetails":[{"position":"manager"},{"position":"developer"}]来自邮递员。

1 个答案:

答案 0 :(得分:0)

你准备好的陈述让我感到满意。尝试使用?作为查询中位置的占位符。

db.query(
    'SELECT * FROM position WHERE position <> ?', [req.body.positionDetails[i].position],
    function(err, p) {
        console.log(p.rows)
});

如果这样可以解决问题,那么我建议您将position与文字字符串$1进行比较,并且每次比较都会失败,导致每个记录都出现在结果集中。