开发者社区> 问答> 正文

SQLExprParser 识别不了SEPARATOR 最新版本

版本号:druid-spring-boot-starter 1.2.8|1.2.9 SQL语句: SELECT DISTINCT FORM202111051416223496.patrolRouteName, FORM202111051416223496.patrolContent, GROUP_CONCAT( FORM202111241018088913.address SEPARATOR '|' ) AS points, FORM202111051416223496.offsetDistance, FORM202111051416223496.patrolPrecautions, FORM202111051416223496.id, FORM202111051416223496.create_by AS createBy, FORM202111051416223496.create_time AS createTime, FORM202111051416223496.update_by AS updateBy, FORM202111051416223496.update_time AS updateTime FROM FORM202111051416223496 LEFT JOIN FORM202111051416223496_points_relation ON FORM202111051416223496.id = FORM202111051416223496_points_relation.masterId LEFT JOIN FORM202111241018088913 ON FORM202111241018088913.id = FORM202111051416223496_points_relation.slaveId GROUP BY FORM202111051416223496.id ORDER BY FORM202111051416223496.update_time DESC, FORM202111051416223496.id DESC LIMIT 10, 10

T11.png

db-type:com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy

原提问者GitHub用户qichangleixin

展开
收起
山海行 2023-07-05 17:59:59 89 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在最新版本的SQLExprParser中,确实没有提供 SEPARATOR 关键字的支持。SEPARATOR 是 MySQL 特有的语法,用于设置 GROUP_CONCAT 函数的连接符。

    2023-07-30 20:52:23
    赞同 展开评论 打赏
  • 已解决,dbtype覆盖了数据库类型

    原回答者GitHub用户qichangleixin

    2023-07-06 10:42:06
    赞同 展开评论 打赏
  • 根据您提供的SQL语句,您正在使用druid-spring-boot-starter版本1.2.8或1.2.9。然而,SQLExprParser无法识别SEPARATOR关键字。这是因为在Druid中,并不支持在GROUP_CONCAT函数中使用SEPARATOR关键字来指定分隔符。

    如果您想要在GROUP_CONCAT函数中设置分隔符,您可以考虑以下替代方案:

    1. 在应用程序代码中进行分割:您可以通过获取GROUP_CONCAT函数返回的结果字符串,并在代码中使用适当的分隔符对其进行分割操作。

    2. 使用其他数据库特定的函数:如果您的数据库支持其他函数来实现类似的功能,您可以尝试使用该数据库特定的函数来替代GROUP_CONCAT函数。

    请注意,具体的解决方案可能会因您所使用的数据库类型和版本而有所不同。如果您需要更详细的帮助,请提供您使用的数据库类型和版本信息。

    2023-07-05 19:11:49
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载