当前使用版本
3.4.2 MySQL 5.7
该问题是如何引起的?
分页请求查询时, 若SQL语句WHERE条件为 WHERE MATCH(xxx) AGAINST(xxx), 则弹出此警告
重现步骤
分页请求查询, SQL语句WHERE条件为 WHERE MATCH(xxx) AGAINST(xxx)
@Select("SELECT t1.* FROM t1 WHERE MATCH(t1.`keyword`) AGAINST(#{keyword}))
IPage<SomeClass> findByKeyword(String keyword, Integer sId, Page<SomeClass> page);
报错信息
optimize this sql to a count sql has exception, sql:"SELECT t1.* FROM t1 WHERE MATCH(t1.`keyword`) AGAINST(?)", exception:
net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "MATCH" "MATCH"
Was expecting one of:
"!"
"("
"NOT"
Comment From: totoro52
跟我遇到的问题差不多,主要还是JSqlParser问题,目前还没找到解决方法,要么建视图要么储存过程,但这两样能不用就不用,我的解决方法是用代码去实现。
Comment From: aboutZZ
跟我遇到的问题差不多,主要还是JSqlParser问题,目前还没找到解决方法,要么建视图要么储存过程,但这两样能不用就不用,我的解决方法是用代码去实现。
我手动去count总条数了
Comment From: totoro52
跟我遇到的问题差不多,主要还是JSqlParser问题,目前还没找到解决方法,要么建视图要么储存过程,但这两样能不用就不用,我的解决方法是用代码去实现。
我手动去count总条数了
关闭issues吧 JSqlParser那边很多个issues了 但是都没有处理 应该是不会支持这些复杂的函数嵌套SQL语句了