今天有个需求,要求根据一个字段模糊查询,这个字段是数字类型 java里面的类型是 BigDecimal 没办法直接像字符串一样拼接 所以用到了 concat 和 cast 特此记录一下
select * from rm_bureau_standing where cast(id as varchar(255)) like '%33173010000000000794307%';
mybatis 写法
<select id="getListBureauPage" parameterType="com.asiainfo.irp.service.resource.districts.param.RmBureauStandingParam"
resultType="com.asiainfo.irp.service.resource.districts.model.RmBureauStandingModel">
select
rbs.*
from
rm_bureau_standing rbs
left join rm_area ra
on
rbs.region_id = ra.id
<where>
<if test="id != null">
cast(rbs.id as varchar(255)) like concat('%',#{id}, '%')
</if>
</where>
limit #{limit} OFFSET #{page}
</select>
运行结果
select count(distinct rbs.id)
FROM rm_bureau_standing rbs
LEFT JOIN rm_area ra
ON rbs.region_id = ra.id
WHERE cast(rbs.id as varchar(255)) like concat('%',331730100000000007943073, '%');