这是我的SQL语句:
<select id="selectRanking" parameterType="java.util.HashMap"
resultMap="BaseResultMap">
set @rownum=0;
select @rownum=@rownum+1 as rank, s.userId as userId, s.stageId as stageId, s.encryptName as encryptName, s.lastModifyTime as lastModifyTime, s.friendNum as friendNum
from T_Friend_Ranking s
WHERE s.stageId=#{record.stageId,jdbcType=BIGINT} AND s.friendNum!=0
order by friendNum DESC ,lastModifyTime ASC limit #{record.rankingNum}
</select>
和BaseResultMap:
<resultMap id="BaseResultMap" type="FriendRanking">
<constructor>
<idArg column="userId" javaType="java.lang.Long" jdbcType="BIGINT"/>
<idArg column="stageId" javaType="java.lang.Long" jdbcType="BIGINT"/>
<arg column="encryptName" javaType="java.lang.String" jdbcType="VARCHAR"/>
<arg column="lastModifyTime" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
<arg column="friendNum" javaType="java.lang.Long" jdbcType="BIGINT"/>
<arg column="rank" javaType="java.lang.Integer" jdbcType="INTEGER"/>
</constructor>
</resultMap>
例外是:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 近
查询数据库时出错。原因: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个 SQL语法错误;查看与您的手册相对应的手册 MySQL服务器版本,用于在'select s.userId附近使用正确的语法 as userId,s.stageId as stageId,s.encryptName as encryptName,s'at 第2行 ###文件中可能存在错误[FriendRankingMapper.xml] ###错误可能涉及com。***。FriendRankingMapper.selectRanking-Inline ### 设置参数时发生错误### SQL:set @ rowNum = 0;
选择s.userId为userId,s.stageId为stageId,s.encryptName为 encryptName,s.lastModifyTime as lastModifyTime,s.friendNum as friendNum,(@ redNum:= @ rowNum + 1)作为排名 T_Friend_Ranking s WHERE s.stageId =?订购 friendNum DESC,lastModifyTime ASC限制? ### 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你 您的SQL语法有错误;检查对应的手册 您的MySQL服务器版本,以便在'select'附近使用正确的语法 s.userId为userId,s.stageId为stageId,s.encryptName为 在第2行加密名称,s';糟糕的SQL语法[];嵌套异常是 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个 SQL语法错误;查看与您的手册相对应的手册 MySQL服务器版本,用于在'select s.userId附近使用正确的语法 as userId,s.stageId as stageId,s.encryptName as encryptName,s'at 第2行 org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
我做了一个断点,准备好后复制sql语句并直接在mysql中运行:没有错误,我可以得到正确的结果。 我该如何解决这个问题?