前提说明
二级机构是【明亚保险经纪股份有限公司北京分公司】,它的机构主键id是600002,
它下面有三个三级机构,
在数据库存储的层级信息格式是:_一级机构id_二级机构id_三级机构id. 以此类推
要求
需要查询二级机构及二级机构以下的数据
sql写法
全模糊写法
select * from t_partner_com where PARENT_PATH like '%_600002_%';
-- 两种写法一样,都是拼接字符串
select * from t_partner_com where PARENT_PATH like concat('%','_','600002','_','%');
实现效果
查出了不属于【600002】的数据,多了【2600002、7600002、8600002】这些数据
右模糊
select * from t_partner_com where PARENT_PATH like '_600002_%'
实现效果
一条数据也查不出来
转义字符查询
-- sql写法
select * from t_partner_com where PARENT_PATH like '%$_600002$_%' ESCAPE '$'
-- mybatis写法
<if test="pcomId !=null and pcomId !=''">
and c.PARENT_PATH like '%$_${pcomId}$_%' ESCAPE '$'
</if>
实现效果
精确查询出数据