mysql中的包含我们往往会使用in (x1,x2,x3)来查询。但是我们还可以选择另一种更为方便的写法。即使用FIND_IN_SET();
使用in时,我们需要自己用 ‘ , ’区分每一项。
例如:delete form sys_user where id in ('1','2','3')
使用FIND_IN_SET时,我们直接传已‘ , ’分割的字符串即可。
例如:delete form sys_user where FIND_IN_SET(id,'1,2,3')
当我们在mybatis中使用in时,需要传入一个集合对象并自己在xml中写foreach。
例如:
<!--接口 Integer deleteById(@Param("idList") List<String> idList) -->
<delete id="deleteById">
delete from sys_user
where id in
<foreach collection="idList" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
但是我们使用FIND_IN_SET时,只需要传以‘ , ’分割的字符串即可。
例如:
<!--接口 Integer deleteById(@Param("ids") String ids) -->
<delete id="deleteById">
delete from sys_user
where FIND_IN_SET(id,#{ids})
</delete>
是不是觉得一下就简洁了呢?