在 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}
。
使用這種方式,可以根據傳入的參數動態構建查詢條件,實現多條件組合查詢。