我发布了使用limit和offset设置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);
});
提前致谢。
答案 0 :(得分:12)
你给findAll方法的“order”-string没有在Sequelize中解析,只是为了防止SQL注入而被转义。 “group”是 most 某些 SQL方言中的保留关键字,因此查询无法运行。
为了使其工作,只需将“group”列放入`s,就像这样:
A_Model.findAll({
offset:req.query.page * req.query.rows - req.query.rows,
limit :req.query.rows,
order: '`group` DESC'
})