devilex 2022-04-22 09:57 采纳率: 0%
浏览 326
已结题

Encountered " "(" "( "" at line 4, column 12

问题遇到的现象和发生背景
在sql中编辑好sql 但是移植到mybatisplus xml 中使用时报错
问题相关代码,请勿粘贴截图
        <![CDATA[
        SELECT *,SUM(countSum) as countSum1 from (
        SELECT
        count_sum as countSum ,
        elt(INTERVAL (count_sum,0, 8, 16, 48 ),
        '8','9-16','17-48','48+'
        ) AS countSumLevel,
        FROM_UNIXTIME(createtime, '%Y-%m-%d'),
        DATEDIFF(FROM_UNIXTIME(endtime, '%Y-%m-%d'),FROM_UNIXTIME(createtime, '%Y-%m-%d')) as days,
        elt(
        INTERVAL (
        DATEDIFF(
        FROM_UNIXTIME(endtime, '%Y-%m-%d'),
        FROM_UNIXTIME(createtime, '%Y-%m-%d')
        ),0, 2, 4, 6,8,10,15 ),
        '1-2','3-4','5-6',
        '7-8','9-10','10-15','15+'
        ) AS daysLevel,
        CONCAT_WS('/',elt(INTERVAL (count_sum,0, 8, 16, 48 ),'8','9-16','17-48','48+'),elt(INTERVAL (DATEDIFF(
            FROM_UNIXTIME(endtime, '%Y-%m-%d'),
            FROM_UNIXTIME(createtime, '%Y-%m-%d')),0, 2, 4, 6,8,10,15 ),'1-2','3-4','5-6','7-8','9-10','10-15','15+')) AS CountSumDay
        FROM
        tb_order
        WHERE
        endtime !=''
        ORDER BY CountSum DESC
        ) as a
        GROUP BY CountSumDay
        ]]>

运行结果及报错内容
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT *,SUM(countSum) as countSum1 from (
        SELECT
        count_sum as countSum ,
        elt(INTERVAL (count_sum,0, 8, 16, 48 ),
        '8','9-16','17-48','48+'
        ) AS countSumLevel,
        FROM_UNIXTIME(createtime, '%Y-%m-%d'),
        DATEDIFF(dd,FROM_UNIXTIME(endtime, '%Y-%m-%d'),FROM_UNIXTIME(createtime, '%Y-%m-%d')) as days,
        elt(
        INTERVAL (
        DATEDIFF(
        FROM_UNIXTIME(endtime, '%Y-%m-%d'),
        FROM_UNIXTIME(createtime, '%Y-%m-%d')
        ),0, 2, 4, 6,8,10,15 ),
        '1-2','3-4','5-6',
        '7-8','9-10','10-15','15+'
        ) AS daysLevel,
        CONCAT_WS('/',elt(INTERVAL (count_sum,0, 8, 16, 48 ),
        '8','9-16','17-48','48+'
        )    ,elt(
                INTERVAL (
        DATEDIFF(dd,
        FROM_UNIXTIME(endtime, '%Y-%m-%d'),
        FROM_UNIXTIME(createtime, '%Y-%m-%d')
        ),0, 2, 4, 6,8,10,15 ),
        '1-2','3-4','5-6','7-8','9-10','10-15','15+'
        )) AS CountSumDay
        FROM
        tb_order
        WHERE
        endtime !=''
        ORDER BY CountSum DESC
        ) as a
        GROUP BY CountSumDay
### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT *,SUM(countSum) as countSum1 from (
        SELECT
        count_sum as countSum ,
        elt(INTERVAL (count_sum,0, 8, 16, 48 ),
        '8','9-16','17-48','48+'
        ) AS countSumLevel,
        FROM_UNIXTIME(createtime, '%Y-%m-%d'),
        DATEDIFF(dd,FROM_UNIXTIME(endtime, '%Y-%m-%d'),FROM_UNIXTIME(createtime, '%Y-%m-%d')) as days,
        elt(
        INTERVAL (
        DATEDIFF(
        FROM_UNIXTIME(endtime, '%Y-%m-%d'),
        FROM_UNIXTIME(createtime, '%Y-%m-%d')
        ),0, 2, 4, 6,8,10,15 ),
        '1-2','3-4','5-6',
        '7-8','9-10','10-15','15+'
        ) AS daysLevel,
        CONCAT_WS('/',elt(INTERVAL (count_sum,0, 8, 16, 48 ),
        '8','9-16','17-48','48+'
        )    ,elt(
                INTERVAL (
        DATEDIFF(dd,
        FROM_UNIXTIME(endtime, '%Y-%m-%d'),
        FROM_UNIXTIME(createtime, '%Y-%m-%d')
        ),0, 2, 4, 6,8,10,15 ),
        '1-2','3-4','5-6','7-8','9-10','10-15','15+'
        )) AS CountSumDay
        FROM
        tb_order
        WHERE
        endtime !=''
        ORDER BY CountSum DESC
        ) as a
        GROUP BY CountSumDay
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) ~[mybatis-3.5.7.jar:3.5.7]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:153) ~[mybatis-3.5.7.jar:3.5.7]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145) ~[mybatis-3.5.7.jar:3.5.7]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) ~[mybatis-3.5.7.jar:3.5.7]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322]
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427) ~[mybatis-spring-2.0.6.jar:2.0.6]
    ... 130 common frames omitted
Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT *,SUM(countSum) as countSum1 from (
        SELECT
        count_sum as countSum ,
        elt(INTERVAL (count_sum,0, 8, 16, 48 ),
        '8','9-16','17-48','48+'
        ) AS countSumLevel,
        FROM_UNIXTIME(createtime, '%Y-%m-%d'),
        DATEDIFF(dd,FROM_UNIXTIME(endtime, '%Y-%m-%d'),FROM_UNIXTIME(createtime, '%Y-%m-%d')) as days,
        elt(
        INTERVAL (
        DATEDIFF(
        FROM_UNIXTIME(endtime, '%Y-%m-%d'),
        FROM_UNIXTIME(createtime, '%Y-%m-%d')
        ),0, 2, 4, 6,8,10,15 ),
        '1-2','3-4','5-6',
        '7-8','9-10','10-15','15+'
        ) AS daysLevel,
        CONCAT_WS('/',elt(INTERVAL (count_sum,0, 8, 16, 48 ),
        '8','9-16','17-48','48+'
        )    ,elt(
                INTERVAL (
        DATEDIFF(dd,
        FROM_UNIXTIME(endtime, '%Y-%m-%d'),
        FROM_UNIXTIME(createtime, '%Y-%m-%d')
        ),0, 2, 4, 6,8,10,15 ),
        '1-2','3-4','5-6','7-8','9-10','10-15','15+'
        )) AS CountSumDay
        FROM
        tb_order
        WHERE
        endtime !=''
        ORDER BY CountSum DESC
        ) as a
        GROUP BY CountSumDay
    at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39) ~[mybatis-plus-core-3.4.3.1.jar:3.4.3.1]
    at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52) ~[mybatis-plus-extension-3.4.3.1.jar:3.4.3.1]
    at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.beforeQuery(TenantLineInnerInterceptor.java:65) ~[mybatis-plus-extension-3.4.3.1.jar:3.4.3.1]
    at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78) ~[mybatis-plus-extension-3.4.3.1.jar:3.4.3.1]
    at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) ~[mybatis-3.5.7.jar:3.5.7]
    at com.sun.proxy.$Proxy302.query(Unknown Source) ~[na:na]
    at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:143) ~[pagehelper-5.1.2.jar:na]
    at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) ~[mybatis-3.5.7.jar:3.5.7]
    at com.sun.proxy.$Proxy302.query(Unknown Source) ~[na:na]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151) ~[mybatis-3.5.7.jar:3.5.7]
    ... 137 common frames omitted
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " "(" "( "" at line 4, column 12.
Was expecting one of:
    "AS" ...
    "DO" ...
    "ANY" ...
    "KEY" ...
    "PERCENT" ...
    "END" ...
    "INTO" ...
    "FROM" ...
    "OPEN" ...
    "TABLE" ...
    "WHERE" ...
    "FOR" ...
    "XML" ...
    "UNION" ...
    "GROUP" ...
    "ORDER" ...
    "VALUE" ...
    "HAVING" ...
    "INSERT" ...
    "VALUES" ...
    "REPLACE" ...
    "TRUNCATE" ...
    "INTERSECT" ...
    "CAST" ...
    "EXCEPT" ...
    "MINUS" ...
    "OVER" ...
    "PARTITION" ...
    "EXTRACT" ...
    "MATERIALIZED" ...
    "START" ...
    "CONNECT" ...
    "PRIOR" ...
    "SIBLINGS" ...
    "COLUMN" ...
    "NULLS" ...
    "FIRST" ...
    "LAST" ...
    "ROWS" ...
    "RANGE" ...
    "FOLLOWING" ...
    "ROW" ...
    "COMMIT" ...
    "SEPARATOR" ...
    "CASCADE" ...
    "NO" ...
    "ACTION" ...
    <K_DATETIMELITERAL> ...
    "PRECISION" ...
    <S_IDENTIFIER> ...
    <S_QUOTED_IDENTIFIER> ...
    "," ...
    ")" ...
    "|" ...
    "&" ...
    "^" ...
    "::" ...
    "ORDER" ...
    "ORDER" ...
    
    at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:16395) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:16248) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParser.FromItem(CCJSqlParser.java:3435) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:2445) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:2579) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:2336) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:2328) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:129) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:80) ~[jsqlparser-1.0.jar:na]
    at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:54) ~[jsqlparser-1.0.jar:na]
    at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49) ~[mybatis-plus-extension-3.4.3.1.jar:3.4.3.1]
    ... 145 common frames omitted



img

我的解答思路和尝试过的方法

在sql中添加cdata ,或者在sql中能正常运行并返回,检查sql没有问题,但是在xml中会报错
在sql中运行的结果

img

我想要达到的结果

正常返回数据

  • 写回答

1条回答 默认 最新

  • devilex 2022-04-22 10:38
    关注

    问题已解决,感谢:
    https://xie.infoq.cn/article/a98628c1fea370b72fed3d8f0 的答案,关于旧的注释与新注释的相关答案。

    当我们的需要过滤多租户,我们就需要用 @InterceptorIgnore(tenantLine = "1") 注解来代替。
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月22日
  • 创建了问题 4月22日

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试