MyBatis排序时使用order by 动态参数时需要注意,用$而不是# 用$传参时,直接将参数的值放在sql语句中,如:
<select id="getOpenSourceApkList" resultType="OpenSourceApkInfo" parameterType="Map" >
<![CDATA[
SELECT * FROM
(SELECT A.*, ROWNUM RN FROM
(SELECT * FROM t_OPENSOURCEAPKINFO where RECOMMEND =1 and VISIBILITY=2 ORDER BY ${orderKey} desc,ID)
A WHERE ROWNUM <= #{endNo})
WHERE RN >= #{beginNo}
]]>
</select>
Sql语句打印:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM t_OPENSOURCEAPKINFO where RECOMMEND =1 and VISIBILITY=2 ORDER BY averagegrade desc) A WHERE ROWNUM <= ?) WHERE RN >= ?
参数:24(Integer), 1(Integer)
用#传参时,不会将参数直接放在sql中,如:
<select id="getOpenSourceApkList" resultType="OpenSourceApkInfo" parameterType="Map" >
<![CDATA[
SELECT * FROM
(SELECT A.*, ROWNUM RN FROM
(SELECT * FROM t_OPENSOURCEAPKINFO where RECOMMEND =1 and VISIBILITY=2 ORDER BY #{orderKey} desc,ID)
A WHERE ROWNUM <= #{endNo})
WHERE RN >= #{beginNo}
]]>
</select>
Sql语句打印:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM t_OPENSOURCEAPKINFO where RECOMMEND =1 and VISIBILITY=2 ORDER BY ? desc) A WHERE ROWNUM <= ?) WHERE RN >= ?
参数:averagegrade(String), 24(Integer), 1(Integer)
最后执行的是order by 'averagegrade'
更多相关文章
- 解析innodb status各项参数
- MySql 优化之like语句
- c语言把mysql数据库语句和变量封装为一个语句
- sql语句之union与join的区别
- MySQL中一些查看事务和锁情况的常用语句
- mysql sql语句实现隐藏手机号码中间四位
- 有没有什么MYSQL语句可以判断表是否存在并且创建?
- 如何将对象作为参数传播给函数?
- 如何在javascript函数中将URL编码为参数?