日期:2014-05-17  浏览次数:20780 次

myBatis 动态生成排序问题。
假设有2个字段要排序。 分别为字段A ,字段B ,都可以ASC DESC 
假设有这样一个SQL 语句 
SELECT * FROM XXX ORDER BY #{a1} #{b1}
参数传入 A DESC 结果运行没有排序,
假设
SELECT * FROM XXX ORDER BY ${a1} ${b1}
参数第一次运行传入
A DESC 后面每次运行都变成了
SELECT * FROM XXX ORDER BY A DESC 排序另外一个字段B的时候,实际上也就是在排序字段A的效果。。。
<select id="getList" parameterType="hashmap" statementType="STATEMENT" >
定义了statementType="STATEMENT" 还是没有效果。。。




------解决方案--------------------
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
仔细比较一下你的SQL语句与上面这一句,order by后面多个条件间少了逗号
------解决方案--------------------
探讨

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
仔细比较一下你的SQL语句与上面这一句,order by后面多个条件间少了逗号

------解决方案--------------------
楼上正解,你需要判断一下的,多个条件,要加逗号