MyBatis 模糊匹配搜索实现

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

 

看似很容易呀

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

 

搜索实现:

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

 

 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'  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  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}' ) 

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

 

 

 

 

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐