MySQL ER_PARSE_ERROR语法错误求助:分页SQL语句问题
问题解决:MySQL LIMIT OFFSET语法错误
错误根源是你写的SQL语句里offset = ?不符合MySQL语法规范,OFFSET关键字后面直接跟偏移量数值,不需要加等号。
修改模型中的getByPage常量,把SQL语句里的offset = ?改成offset ?即可:
const getByPage = (page = 1, limit = 10) => { return executeQuery( 'select * from clientes limit ? offset ?', [limit, (page-1) * limit] ); }
另外,MySQL的分页语法还有另一种写法,也可以写成:
select * from clientes limit ?, ?
这里第一个参数是偏移量(page-1)*limit,第二个参数是每页数量limit,对应代码里的参数顺序要调整:
const getByPage = (page = 1, limit = 10) => { return executeQuery( 'select * from clientes limit ?, ?', [(page-1) * limit, limit] ); }
两种写法都能正常实现分页功能,选一种你习惯的就行。修改后执行的SQL会变成select * from clientes limit 10 offset 0,符合语法规范,就能解决这个解析错误了。
内容的提问来源于stack exchange,提问作者Mario Peñas
相关产品推荐
相关产品推荐

