在 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}。
使用这种方式,可以根据传入的参数动态构建查询条件,实现多条件组合查询。