<select id = "" resultMap = "">
select * from table
<where>
<if test="type == \'x1\' ">
and 条件1;
</if>
<if test="type == \'x2\' ">
and 条件2;
</if>
</where>
</select>
或者
<select id = "" resultMap = "">
select * from table
<choose>
<when test=" type == \'x1\' \'">
where 条件1;
</when >
<when test=" type == \'x2\' \'">
where 条件2;
</when >
<otherwise>
条件3; // 可以为空
</otherwise>
</choose>
<if test="type == \'x2\' "> //如果除了以上条件外还有判断的条件,放在chose标签外,不用再写where
and 条件2;
</if>
</select>
例子:
<select id="queryList" resultType="com....."> select * from student WHERE 1=1 <if test="name != null and name != \'\'"> AND name LIKE concat(\'%\',#{name},\'%\') </if> <if test="merchantId != null and merchantId != \'\'"> AND merchant_id =#{merchantId} </if> <choose> <when test="sidx != null and sidx.trim() != \'\'"> order by ${sidx} ${order} </when> <otherwise> order by id desc </otherwise> </choose>
</select>