多条件分组精准匹配
Posted h-dream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多条件分组精准匹配相关的知识,希望对你有一定的参考价值。
2019-08-11
对同一条数据的不同属性分组进行过滤筛选,每一组筛选的条件组合可以有多个也可以没有。首先以一个分组中的条件进行过滤,之后另一个分组中的条件对上一个条件过滤之后的结果进行再次筛选,同理可得多分组筛选。进行第一次过滤需要前台传送第一次过滤的条件数据,多个属性同时过滤就需要将所有需要的条件的参数同时传送。
1、mapper.xml层代码展示
1 <select id="findRosterGroupRoster" resultType="com.example.pojo.Roster"> 2 select job_number, full_name, sex, mobile, id_type, id_card, bank_name, 3 bank_account, register_status, type_of_work 4 from roster where customer_id = #customerId 5 6 <if test="registerStatusS != null and registerStatusS.length != 0"> //传入的第一个过滤条件,同一属性可以选多种状态,所以是数组对象 7 and register_status in <foreach collection="registerStatusS" index="index" item="registerStatus" 8 open="(" separator="," close=")"> 9 #registerStatus 10 </foreach> 11 </if> 12 <if test="statusS != null and statusS.length != 0"> 13 and status in <foreach collection="statusS" index="index" item="status" 14 open="(" separator="," close=")"> 15 #status 16 </foreach> 17 </if> 18 <if test="typeOfWorks != null and typeOfWorks.length != 0"> 19 and type_of_work in <foreach collection="typeOfWorks" index="index" item="typeOfWork" 20 open="(" separator="," close=")"> 21 #typeOfWork 22 </foreach> 23 </if> 24 </select> 25
2、mapper.java层代码
1 /** 2 * 分组精确筛选 3 * @param customerId 4 * @param registerStatusS 5 * @param statusS 6 * @param typeOfWorks 7 * @return 8 */ 9 List<Roster> findRosterGroupRoster(@Param("customerId")Integer customerId, @Param("registerStatusS") Integer[] registerStatusS, 10 @Param("statusS") String[] statusS, @Param("typeOfWorks")String[] typeOfWorks); //传入数组参数,不要忘记javabean中要进行定义 11
注意:从前端接收数据一定是数组类型,如下格式:
"statusS":["157576651","15724367546",“15737756576”]
以上是关于多条件分组精准匹配的主要内容,如果未能解决你的问题,请参考以下文章