当前使用版本(必填,否则不予处理)
3.5.2(当前最新版)\3.4.3.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
使用mysql 8.0 json的查询语法,无法优化语句 报出警告日志
重现步骤(如果有就写完整)
sql语句
SELECT DB_LOG_ID,OPT_ID,TABLE_NAME,APP_MODULE,BUSSINES_MODULE,BUSSINES_ACTION,TABLE_ID_VALUE,OPT_USER,OPT_USER_ID,OPT_TIME,CODE_LINK,EXECUTE_SQL,QUERY_PATH,QUERY_BODY,QUERY_METHOD,EXECUTE_TYPE,DB_LOG_CHANGE_LIST FROM T_SYS_DB_LOG_RECORD
WHERE ( '12345' MEMBER OF ( DB_LOG_CHANGE_LIST ->> '$[*].columnName' )) ORDER BY OPT_TIME DESC
报错信息
2022-11-23 09:35:34.270 WARN 39144 --- [io-30020-exec-1] [ ] c.b.m.e.p.i.PaginationInnerInterceptor : optimize this sql to a count sql has exception, sql:"SELECT DB_LOG_ID,OPT_ID,TABLE_NAME,APP_MODULE,BUSSINES_MODULE,BUSSINES_ACTION,TABLE_ID_VALUE,OPT_USER,OPT_USER_ID,OPT_TIME,CODE_LINK,EXECUTE_SQL,QUERY_PATH,QUERY_BODY,QUERY_METHOD,EXECUTE_TYPE,DB_LOG_CHANGE_LIST FROM T_SYS_DB_LOG_RECORD
WHERE (? MEMBER OF ( DB_LOG_CHANGE_LIST ->> '$[*].columnName' )) ORDER BY OPT_TIME DESC", exception:
net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "MEMBER"
Was expecting one of:
"&"
"&&"
")"
"::"
"<<"
">>"
"AND"
"COLLATE"
"^"
"|"
Comment From: miemieYaho
jsqlparser无法解析
Comment From: FaberSober
使用多租户插件时,查询json也遇到了相同的问题。是jsqlparser解析报错。
Comment From: FaberSober
可以尝试使用最新版的jsqlparser。
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>4.5</version>
</dependency>
Comment From: miemieYaho
最新版jsqlparser有其他bug
Comment From: tsth
最后解决了吗