<select id="FindQxbyLdAndSylxAndWtdwmcAndWtlx" resultType="java.lang.String">
SELECT
jc_syqx_mx.QX
FROM
jc_syqx
INNER JOIN
jc_syqx_mx
ON
jc_syqx.ID = jc_syqx_mx.SYQX_ID
WHERE
jc_syqx.ZT = #{'1',javaType=String,jdbcType=VARCHAR}
<if test="ld != null and ld != ''">
AND jc_syqx_mx.LD = #{ld,javaType=String,jdbcType=VARCHAR}
</if>
<if test="sylx != null and sylx != ''">
AND jc_syqx_mx.SYLX = #{sylx,javaType=String,jdbcType=VARCHAR}
</if>
<if test="wtdwmc != null and wtdwmc != ''">
AND jc_syqx.WTDWMC = #{wtdwmc,javaType=String,jdbcType=VARCHAR}
</if>
<if test="wtlx != null and wtlx != ''">
AND jc_syqx_mx.WTLXS LIKE CONCAT('%', #{wtlx,javaType=String,jdbcType=VARCHAR},
'%')
</if>
</select>
其中的
<if test="wtlx != null and wtlx != ''"> AND jc_syqx_mx.WTLXS LIKE CONCAT('%', #{wtlx,javaType=String,jdbcType=VARCHAR} , '%') </if>在
LIKE
运算符中,可以使用两个特殊的通配符:
%
:代表任意数量的字符(包括零个字符)。_
:代表一个单个字符。下面是一些示例说明:
WHERE name LIKE 'J%'
:表示筛选出以字母 'J' 开头的name
字段的记录。WHERE name LIKE '%Smith'
:表示筛选出以 'Smith' 结尾的name
字段的记录。WHERE name LIKE '%John%'
:表示筛选出包含 'John' 的name
字段的记录。WHERE name LIKE '_o%'
:表示匹配第二个字符为 'o' 的name
字段的记录就是模糊查询的条件,下面是用法介绍
1.%
是 SQL 中的通配符之一,用于表示任意字符的占位符
2.CONCAT()
函数,它会将多个字符串值连接在一起
所以,
CONCAT('%', #{wtlx,javaType=String,jdbcType=VARCHAR}, '%')
的含义是:将%
、参数值、%
这三部分字符串连接在一起,形成一个新的字符串。最终,在 SQL 查询中匹配包含任意前缀和后缀的
wtlx
值的数据记录。