在 MyBatis 中,可以使用 <if>
標簽來實現類似 SQL 中的 CASE WHEN
語句的功能。下面是一個示例:
<select id="selectByExample" parameterType="com.example.Example" resultType="com.example.Result">
SELECT
id,
name,
age,
<if test="example.status != null">
CASE
WHEN example.status = 'active' THEN 'Active'
WHEN example.status = 'inactive' THEN 'Inactive'
ELSE 'Unknown'
END AS status_name
</if>
FROM
user
WHERE
<if test="example.id != null">
id = #{id}
</if>
<if test="example.name != null">
AND name = #{name}
</if>
<if test="example.age != null">
AND age = #{age}
</if>
</select>
在這個示例中,我們使用 <if>
標簽來根據參數是否為 null
來動態生成 SQL 語句。當 example.status
不為 null
時,我們使用 CASE
語句來根據 example.status
的值返回不同的結果。