当前使用版本(必填,否则不予处理)

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,所以我最终还是采用了代码去实现其中的逻辑。