我正在尝试通过“ averageRating”过滤一些数据。
这是我的方法代码:
filterr(request, respond) {
var averageRating = request.params.rating;
var sql = "SELECT * FROM shopreview.shops WHERE averageRating = ?";
db.query(sql, [averageRating], function (error, result) {
if (error) {
throw error;
}
else {
respond.json(result);
}
});
}
当我针对数据库进行测试时,我的sql语句正在运行。但是,我一直得到[]作为结果。有人可以帮忙找出问题所在吗?非常感谢!
最佳答案
问题是“?”因为数据库无法解析它。
要么像这样添加avarageRating变量:
var sql = "SELECT * FROM shopreview.shops WHERE averageRating = ${parseInt(avarageRating)}";
或者,如果您使用沙发床,则可以这样解析:
var sql = `SELECT * FROM shopreview.shops WHERE averageRating = $1`;
其中$ 1是变量数组中的第一个变量。