6

我已经设置了带有限制和偏移量的 findAll 查询的返回数据顺序,我使用的是文档中的示例代码:order: 'group DESC'但它抛出一个错误说:

Error: SQLITE_ERROR: near "group": syntax error

这是完整的功能。

A_Model.findAll({
     offset:req.query.page * req.query.rows - req.query.rows,
     limit :req.query.rows // TODO: Of course, I put the trailing comma here ;)
     // TODO: order: 'group DESC'
    })
.success(function (docs) {
    response_from_server.records = count;
    response_from_server.page = req.query.page;
    response_from_server.total = Math.ceil(count / req.query.rows);
    response_from_server.rows = [];

    for (item in docs) {
        response_from_server.rows.push({
            id  :docs[item].id,
            cell:[
                docs[item].group,
                docs[item].description,
                docs[item].path,
                docs[item].value
            ]
        });
    }

    // Return the gathered data.
    res.json(response_from_server);
})
.error(function (error) {       
    logger.log('error', error);
});

提前致谢。

4

1 回答 1

12

您提供给 findAll 方法的“订单”字符串在 Sequelize 中未解析,仅转义以防止 SQL 注入。“组”是保留关键字最多 一些SQL 方言,因此查询无法运行。

要使其正常工作,只需将“组”列放入 `'s,如下所示:

A_Model.findAll({
 offset:req.query.page * req.query.rows - req.query.rows,
 limit :req.query.rows,
 order: '`group` DESC'
})
于 2012-12-13T19:47:27.747 回答