在 MyBatis 中,可以使用动态 SQL 来构建多条件组合查询,包括使用正则表达式。以下是一个示例代码:
<select id="selectByRegex" parameterType="map" resultMap="resultMap">
SELECT * FROM table_name
<where>
<if test="column1 != null and column1 != ''">
AND column1 REGEXP #{column1}
</if>
<if test="column2 != null and column2 != ''">
AND column2 REGEXP #{column2}
</if>
</where>
</select>
在这个示例中,selectByRegex
是查询方法的 ID,parameterType
为 map
,表示传入的参数是一个 Map 类型,包含需要匹配的正则表达式。resultMap
表示返回结果的映射。
在where
标签内部使用<if>
标签来判断是否需要添加相应的条件。如果传入的参数中包含非空的column1
,则会添加AND column1 REGEXP #{column1}
作为查询条件;如果传入的参数中包含非空的column2
,则会添加AND column2 REGEXP #{column2}
。
使用这种方式,可以根据传入的参数动态构建查询条件,实现多条件组合查询。