两种根据关键字查询的方法SQL

1.

<if test="keyword!=null and keyword!=''">
AND (m.matnr LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR m.maktx LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR ub.barcode LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR uc.barcode LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR uf.barcode LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR m.`type` LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR t.`name` LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR m.`kondm` LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR b.`name` LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR f.`row_id` LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
OR f.`name` LIKE concat('%',#{keyword,jdbcType=VARCHAR},'%')
)
</if>

2.
<if test="pBrandName != null and pBrandName.trim() != ''">
<bind name="pBrandName" value="'%' + pBrandName + '%'"/>
and (bfb.name like #{pBrandName} or c.kondm like #{pBrandName} or TG.name like #{pBrandName})
</if>
bind 标签的两个属性都是必选项, name 为绑定到上下文的变量名, value 为 OGNL 表
达式。创建一个 bind 标签的变量后 , 就可以在下面直接使用,使用 bind 拼接字符串不仅可
以避免因更换数据库而修改 SQL,也能预防 SQL 注入。
原文地址:https://www.cnblogs.com/pan-my/p/11077748.html