今天正常写分页查询方法的时候,用的mp自带的page方法。代码如下:
结果代码运行到这里的时候就报如下错误:
当我排查错误的时候发现,它发起的sql很奇怪,且只有一条。
正常来说分页,会先发一条查询总数的sql,然后发起分页的sql。具体奇怪sql如下:
SELECT COUNT(1) FROM ( SELECT id,proposer,proposer_id,proposer_dep,proposer_dep_id,proposer_time,content,use,frequency,regular_frequency,way,type,receive_dep,is_out,create_time,update_time,update_user,update_user_id,is_deleted FROM data_provide WHERE (is_deleted = ?) ORDER BY create_time DESC ) TOTAL
一开始我就去排查它为啥会发这个sql,因为是框架自己发的,我还去看框架源码,排查半天找不到原因。
后面仔细看报错信息有一句:
java.sql.SQLSyntaxErrorException:
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 'use,frequency,regular_frequency,way,type,receive_dep,is_out,create_time,update_t' at line 1
翻译了一下才知道:use是mysql的一个关键字
在MySQL中,“use”是一个保留关键字,用于指定数据库的使用,因此在作为列名时应该用反引号(`)将其括起来,以避免与保留关键字冲突。
我将use字段改成purpose
最后成功查询处分页结果!