一、前提 mybatis 嵌套查询
mapper 中的语句
List<User> select(@Param("list") List<User> list, @Param("day") String day);
二、list 对象
Data
@ToString
public class User{
private String name;
private List<String> idList;
}
三、xml sql
<select id="select" resultMap="Result">
select * from user
<where>
<if test="day!= null and day!= ''">and day= #{day}</if>
<if test="list != null and list.size > 0">
or
<foreach item="item" index="index" collection="list" separator="or" >
( `name`=#{item.name} and
id in
<foreach item="a" collection="item.idList" open="(" separator="," close=")">
#{a}
</foreach>
)
</foreach>
</if>
</where>
</select>