mybatis中使用mysql的模糊查询字符串拼接(like)
Posted shuaiflying
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中使用mysql的模糊查询字符串拼接(like)相关的知识,希望对你有一定的参考价值。
方法一:
<!-- 根据hid,hanme,grade,模糊查询医院信息-->
方法一:
List<Hospital> getHospitalLike(@Param("selectword") String selectword);
<select id="getHospitalLike" resultType="com.hand.hand.domain.Hospital">
SELECT *
FROM hospital
where hid=cast(#{selectword} as signed INTEGER ) OR hname like concat(\'%\',#{selectword},\'%\')
OR grade like concat(\'%\',#{selectword},\'%\')
</select>
where hid=cast(#{selectword} as signed INTEGER ) hid为Integer类型,而参数selectword为string类型,所以用cast将string转化为Integer
where hname like concat(\'%\',#{selectword},\'%\') 字符串拼接,将%和selectword拼接成%selectword%
方法二:动态sql中的bind
List<Hospital> getHospitalLike(@Param("selectword") String selectword);
<select id="getHospitalLike" resultType="com.hand.hand.domain.Hospital">
<bind name="bindselectword" value="\'%\'+selectword+\'%\'"></bind>
SELECT *
FROM hospital
<if test="selectword!=null">
where hid=cast(#{selectword} as signed INTEGER ) OR hname like #{bindselectword}
OR grade like #{bindselectword}
</if>
</select>
方法三:
在service层直接拼接字符串,xml直接使用转入的参数
此方法测试出错(参考博客后,测试出错):
<!--where hid like \'%\'||#{selectword}||\'%\' or hname like \'%\'||#{selectword}||\'%\' or grade like \'%\'||#{selectword}||\'%\'-->
其他拼接法,可参考:https://www.cnblogs.com/dushan/p/4766954.html
以上是关于mybatis中使用mysql的模糊查询字符串拼接(like)的主要内容,如果未能解决你的问题,请参考以下文章