mybatis的动态order by
时间: 2024-04-18 08:19:22 浏览: 161
mybatis之动态SQL
Mybatis的动态order by可以通过使用SQL的CASE语句来实现。具体实现方式如下:
```
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
ORDER BY
<choose>
<when test="sortColumn == 'name'">
<if test="sortOrder == 'asc'">name ASC</if>
<if test="sortOrder == 'desc'">name DESC</if>
</when>
<when test="sortColumn == 'age'">
<if test="sortOrder == 'asc'">age ASC</if>
<if test="sortOrder == 'desc'">age DESC</if>
</when>
<otherwise>id DESC</otherwise>
</choose>
</select>
```
在这个例子中,我们使用了choose、when和otherwise标签来实现动态排序。当sortColumn参数为name或age时,我们会根据sortOrder参数来决定是升序还是降序排列;否则,我们默认按照id降序排列。
阅读全文