首页 > 其他 > 详细

MyBatis 模糊匹配

时间:2016-02-29 18:20:20      阅读:116      评论:0      收藏:0      [点我收藏+]

业务需求:根据城市筛选返回符合要求的结果


技术分享


看似很容易呀

问题在于要筛选的字段,这里我们有一个字段为region_limit,这里面的存储内容为城市id,如1,2,3 或者为商圈id,如3,4,5


搜索实现:

其中 zoneList为前台选择的城市对应的所有商圈

<select id="queryPage" parameterType="Map" resultMap="promotionActivity">
		 
	 	SELECT PA.id,PA.balance_name,PA.name,PA.total_times,PA.start_time,PA.end_time,PA.template_id,
	 		PA.region_limit_type,PA.region_limit from lyancafe.t_promotion_activity PA	 	
			 where active=‘Y‘ 
        <if test="cityId != null and cityId != ‘‘" >
        	and ((region_limit like CONCAT(‘%‘,‘,${cityId},‘,‘%‘ ) or 
        	region_limit like CONCAT(‘%‘,‘,${cityId}‘) or
        	region_limit like CONCAT(‘${cityId},‘,‘%‘ ) or
        	region_limit like ‘${cityId}‘)
        	 and region_limit_type=‘c‘ )
          	or (region_limit_type = ‘z‘ and                             
          <foreach collection="zoneList" index="index" item="region" open="("
				separator="or" close=")">
				  pa.region_limit like  CONCAT(‘%‘,‘,${region},‘,‘%‘ ) or 
				pa.region_limit like  CONCAT(‘%‘,‘,${region}‘ ) or
				 pa.region_limit like  CONCAT(‘${region},‘,‘%‘ ) or
				 pa.region_limit like ‘${region}‘			
			</foreach> ) 
        </if> 
       
	</select> 

仔细观察Concat中的逗号位置。




MyBatis 模糊匹配

原文:http://blog.csdn.net/hejingyuan6/article/details/50766439

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!