当前使用版本(必填,否则不予处理)
v3.4.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
当SQL语句出现复杂点的嵌套关系,jsqlparser都无法正确解析。经查询是jsqlparser导致的,查阅了其issues看到了有类似的提交 https://github.com/JSQLParser/JSqlParser/issues/959 目前还没找到解决方案,我想直接在程序里直接执行该语句而不是通过视图。
重现步骤(如果有就写完整)
SQL如下:
SELECT
count( * ) AS count,
t2.date
FROM
(
SELECT
date_add( '2021-4-22', INTERVAL @i := @i + 1 DAY ) AS `date`
FROM
( SELECT 1 ) AS tmp,
( SELECT @i := - 1 ) t
) t2
该语句用于生成一个临时的时间线表
报错信息
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "(" "("
Comment From: totoro52
JSqlParser无法支持该复杂的SQL,所以我最终还是采用了代码去实现其中的逻辑。