mybatis执行自定义sql时,在执行最后多出现了一个limit的原因及解决方法

报错:

### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 12' at line 21

在执行sql的时候,使用了自定义的分页,但是执行之后自动在后面加上了一个limit,导致sql执行报错,虽然自己没有使用,但是项目中配置了PageHelper分页插件,然后查找资料,才发现只要自定义的sql中有pageSize和pageNum参数值,就会在执行之后自动加上limit

解决方法:
在执行的sql中,把pageSize和pageNum规避掉,可以换成startIndex和maxCount,例如:

limit #{pageNum,jdbcType=INTEGER}, #{pageSize,jdbcType=INTEGER}替换成limit #{maxCount,jdbcType=INTEGER}, #{startIndex,jdbcType=INTEGER}

这样在执行自定义sql时,就可以规避掉后面多出一个limit的问题,这是自己在写代码过程中遇到的实际场景,希望能对大家有所帮助。

你可能感兴趣的:(sql)