想必各位在开发过程中一定使用过:统计的功能,用到了很多SQL的函数,于是就直接写在Mapper文件中了;
比如:
member_num,MAX(ID) AS newestLoanID,MIN (ID) AS earlyLoanID,SUM(applied_amount) AS sumLoansAmount,status
select
member_num,MAX(ID) AS newestLoanID,MIN (ID) AS earlyLoanID,SUM(applied_amount) AS sumLoansAmount,status
from credit_loan_record ......
看似没有啥问题;
执行的时候报错了!
java.lang.RuntimeException: org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: FUNCTION credit_center.MIN does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual
于是拿到mysql的客户端工具来执行!同样的错误!!
那么可想而知,真的是SQL的问题了,于是我们美化一下SQL
SELECT
member_num,
MAX( ID ) AS newestLoanID,
MIN( ID ) AS earlyLoanID,
SUM( applied_amount ) AS sumLoansAmount,
STATUS
FROM
credit_loan_record
WHERE
member_num = 18810875228
AND deleted = 0
竟然通过了!!!
等等!好像异常里面有提示! FUNCTION credit_center.MIN does not exist.
MIN (ID) AS earlyLoanID ——竟然有空格
优化之后:MIN( ID ) AS earlyLoanID,
然后就不报错!
所以,如果以后提示:FUNCTION XXXXX.MIN does not exist.时候,记得看看是不是有空格啊!或者写的不够严谨