//判断国家 省 市 其中有一个不为null
<if test="(countries != null and countries.size() > 0) or (shopLocationProvinces != null and shopLocationProvinces.size() > 0) or (shopLocationCities != null and shopLocationCities.size() > 0)">
//trim中的内容放在and里 并去除 多余的 and 或 or
<trim prefix="and (" suffix=")" prefixOverrides="AND |OR">
<if test="countries != null and countries.size() > 0">
//注意分隔符 是 or
<foreach collection="countries" item="country" index="index" open='(' separator='or' close=')'>
shop_location_country = #{country}
</foreach>
</if>
<if test="shopLocationProvinces != null and shopLocationProvinces.size() > 0">
or
<foreach collection="shopLocationProvinces" item="province" index="index" open='(' separator='or' close=')'>
shop_location_province = #{province}
</foreach>
</if>
<if test="shopLocationCities != null and shopLocationCities.size() > 0">
or
<foreach collection="shopLocationCities" item="city" index="index" open='(' separator='or' close=')'>
shop_location_city = #{city}
</foreach>
</if>
</trim>
</if>
如果有更好的办法 希望可以留言哦~交流一下~