java mybatis根据参数值不同拼接不同的order by
时间: 2024-03-15 22:44:27 浏览: 63
Mybatis 中 Oracle 的拼接模糊查询及用法详解
5星 · 资源好评率100%
可以通过在 SQL 语句中使用 CASE WHEN 条件语句,根据参数值的不同来拼接不同的 ORDER BY 子句。具体实现可以参考下面的示例代码:
```xml
<select id="getUserList" parameterType="map" resultType="User">
SELECT * FROM user
<where>
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
ORDER BY
<choose>
<when test="orderBy == 'name'">
name
</when>
<when test="orderBy == 'age'">
age
</when>
<otherwise>
id
</otherwise>
</choose>
LIMIT #{offset}, #{limit}
</select>
```
在上面的示例代码中,使用了 `<choose>` 标签和 `<when>` 标签来实现根据参数值的不同拼接不同的 ORDER BY 子句。其中,`orderBy` 参数表示按照哪个字段排序,如果 `orderBy` 参数为 `name`,则拼接 `ORDER BY name`,如果 `orderBy` 参数为 `age`,则拼接 `ORDER BY age`,否则拼接 `ORDER BY id`。
阅读全文