Javascript 输出总是给出[]

Javascript 输出总是给出[],javascript,mysql,sql,filter,Javascript,Mysql,Sql,Filter,我试图通过平均化来过滤一些数据 这是我的方法代码: filterr(request, respond) { var averageRating = request.params.rating; var sql = "SELECT * FROM shopreview.shops WHERE averageRating = ?"; db.query(sql, [averageRating], function (error, result) {

我试图通过平均化来过滤一些数据

这是我的方法代码:

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语句正在工作。然而,我一直得到[]作为我的结果。有人能帮我找出问题所在吗?非常感谢

问题是什么?因为db无法解析它

添加该变量,如下所示:

var sql = "SELECT * FROM shopreview.shops WHERE averageRating = ${parseInt(avarageRating)}";
或者,如果您使用couchbase,您可以这样解析它:

var sql = `SELECT * FROM shopreview.shops WHERE averageRating = $1`;

其中$1是变量数组中的第一个变量。

在JS中从来没有SQL查询!filterr和double r?问题可能是因为我无法将平均值解析为“?”@NoOorZ24。用户可能在后端使用JS,我们不知道他们为什么要这样做。这可能只是一个学习练习。我们不要阻止他们:在数据库中运行查询时,确切的查询是什么?你确定你的代码正确地访问了你的数据库/正确的数据库吗?使用console.log调试你的代码以查看平均值的值可能变量在请求的正文或查询中。谢谢,我从来没有想过。我假设在DB和请求中的评分都是整数。我所做的只是将整数添加到sql字符串中。您应该删除该依赖项数组,只需通过concatanating rating=+avaraging或像我一样使用模板文本在sql字符串中添加avarage评级:我现在有一个类似的错误,但我不确定这是否是由于数据类型导致的这次调试,总是把你的疑问当作字符串:好luckI,我现在正在工作中休息,但我不想深入私人信息,因为我不做任何形式的辅导。对不起,伙计。