业务需求:根据城市筛选返回符合要求的结果
看似很容易呀
问题在于要筛选的字段,这里我们有一个字段为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>
原文:http://blog.csdn.net/hejingyuan6/article/details/50766439