关于Mybatis的xml配置文件中使用and与or混合查询

<!-- 该语句结合and or 来查询 是否是老年或者儿童 -->
    <select id="selectCount" resultType="java.lang.Integer" parameterType="cn.xx.xx.User">
        <!-- SELECT COUNT(s.id)
        FROM user s
        <where>
            <if test="id != null">
                AND s.id = #{id,jdbcType=INTEGER}
            </if>
            <if test="age != null">
                AND s.age = #{age,jdbcType=INTEGER}
            </if>
        </where> -->
        SELECT COUNT(s.id)
        FROM user s
        where 1=1
        <if test="id != null">
            AND s.id = #{id,jdbcType=INTEGER}
        </if>
        <if test="flag != null and flag == 1">
            AND s.age &lt; 60
            AND s.age &gt; 14
        </if>
        <if test="flag != null and flag == 2">
            AND ( s.age &gt; 60
            OR s.age = 60
            OR s.age = 14
            OR s.age &lt; 14 )
        </if>
    </select>

 此查询中必须将 xxx OR xxx OR xxx 放入 (),否则之前的and 条件将不起作用

XT_小嘎, 搬砖路上,请多指教。如有侵权,请联系删除。 转载请注明出处,谢谢!
原文地址:https://www.cnblogs.com/xingtangxiaoga/p/9713063.html