mysql select tmp_page.*,rownumber() over() as row_id报错

使用pagehelper做分页

<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>4.1.6</version>
</dependency>

出现报错

[Err] 1064 - 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 '() as row_id from v_zl_ice as tmp_page' at line 1

是因为pagehelper会封装你的sql,加上rownumber() over() as row_id,但是mysql根本就没有rownumber() over()这个函数,oracle,db2支持rownumber() over()。所以要换成支持mysql的版本,或者指定pagehelper连的数据库是mysql。
如下:

<dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.5</version>
        </dependency>

在application.properties文件中增加

pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

问题解决

你可能感兴趣的:(开发问题,mysql,数据库,oracle)