在项目中用mybatis查询的时候遇到一个这样的问题,抛错详情如下:merge sql error, dbType mysql, sql : select ...
merge sql error, dbType mysql, sql : select ID ,AREA_CODE,DECLARATION_CODE, ORIGINAL_REPORT_CODE,REPORT_CODE,REPORT_PARSER_CONFIG, DATA_TYPE,BUSINESS_SAVE_TYPE,DESC,DECLARATION_VERSION, CREATOR_ID,MODIFIER_ID,CREATE_DATE, MODIFY_DATE,IS_DELETE from integration_compliance_declaration_parser_config where is_delete = 0 and DECLARATION_CODE = ? and REPORT_CODE in ( ? , ? , ? , ? , ? )(traceId=6993f47e28bf49f9a5edecafe41622f6)|||com.alibaba.druid.sql.parser.ParserException: ERROR. token : DESC, pos : 169 at com.alibaba.druid.sql.parser.SQLExprParser.primary(SQLExprParser.java:600) at com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser.primary(MySqlExprParser.java:172) at com.alibaba.druid.sql.parser.SQLExprParser.expr(SQLExprParser.java:85) at com.alibaba.druid.sql.parser.SQLExprParser.parseSelectItem(SQLExprParser.java:2166) at com.alibaba.druid.sql.parser.SQLSelectParser.parseSelectList(SQLSelectParser.java:373) at com.alibaba.druid.sql.dialect.mysql.parser.MySqlSelectParser.query(MySqlSelectParser.java:152)
问题原因:
查询sql中涉及到了mysql的关键字,阿里云drds解析的时候能执行但会抛出这个错误;
解决方案:
方案一:sql中涉及的关键字用``起来(如:`DESC`);
方案二:表结构和sql中涉及的“mysql关键字”均删除掉,使用其他名替代(推荐此方案);
来源地址:https://blog.csdn.net/baidu_33321010/article/details/129671884