在 MyBatis 中,可以使用動(dòng)態(tài) SQL 來(lái)構(gòu)建多條件組合查詢,包括使用正則表達(dá)式。以下是一個(gè)示例代碼:
<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>
在這個(gè)示例中,selectByRegex
是查詢方法的 ID,parameterType
為 map
,表示傳入的參數(shù)是一個(gè) Map 類型,包含需要匹配的正則表達(dá)式。resultMap
表示返回結(jié)果的映射。
在where
標(biāo)簽內(nèi)部使用<if>
標(biāo)簽來(lái)判斷是否需要添加相應(yīng)的條件。如果傳入的參數(shù)中包含非空的column1
,則會(huì)添加AND column1 REGEXP #{column1}
作為查詢條件;如果傳入的參數(shù)中包含非空的column2
,則會(huì)添加AND column2 REGEXP #{column2}
。
使用這種方式,可以根據(jù)傳入的參數(shù)動(dòng)態(tài)構(gòu)建查詢條件,實(shí)現(xiàn)多條件組合查詢。