mybatis中,根据查询条件类型:类型为1时,返回年龄字段,类型为2时返回住址字段,mybatis中sql应该怎么写
时间: 2024-03-17 16:45:17 浏览: 69
您可以使用 MyBatis 的动态 SQL 功能来实现这个需求。以下是一个示例:
```xml
<select id="getUserInfo" resultType="java.util.Map">
SELECT
<choose>
<when test="type == 1">
age
</when>
<when test="type == 2">
address
</when>
</choose>
FROM user_info
WHERE user_id = #{userId}
</select>
```
在上面的示例中,我们使用了 `<choose>` 标签来根据条件选择要查询的字段。如果 `type` 为 1,则查询年龄字段;如果 `type` 为 2,则查询住址字段。注意,`<when>` 标签的 `test` 属性用于判断条件是否成立。最终查询的表名和查询条件是固定的,只有查询的字段是动态的。
另外,需要注意的是,查询结果的类型需要设置为 `java.util.Map`,因为查询的字段是动态的,无法确定返回值的类型。
阅读全文