mybatis mysql upsert动态SQL
时间: 2023-07-07 18:45:02 浏览: 100
在 MyBatis 中实现 upsert 操作时,如果需要根据不同的条件进行更新操作,可以使用动态 SQL 来实现。以下是一个示例:
```
<insert id="upsertUser" parameterType="User">
INSERT INTO user (id, name, age)
VALUES (#{id}, #{name}, #{age})
<if test="name != null">
ON DUPLICATE KEY UPDATE name = VALUES(name)
</if>
<if test="age != null">
ON DUPLICATE KEY UPDATE age = VALUES(age)
</if>
</insert>
```
这里使用了 `<if>` 标签来判断属性值是否为空,如果不为空则执行相应的更新操作。注意,如果同时存在多个 `<if>` 标签,则只会执行第一个满足条件的标签内的 SQL 语句。
希望对您有帮助!
阅读全文