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"}]
来自邮递员。
答案 0 :(得分:0)
你准备好的陈述让我感到满意。尝试使用?
作为查询中位置的占位符。
db.query(
'SELECT * FROM position WHERE position <> ?', [req.body.positionDetails[i].position],
function(err, p) {
console.log(p.rows)
});
如果这样可以解决问题,那么我建议您将position
与文字字符串$1
进行比较,并且每次比较都会失败,导致每个记录都出现在结果集中。