update used_mei_ri <set> <if test="meterCode != null"> meter_code = #{meterCode,jdbcType=VARCHAR}, </if> <if test="zrRecordValue != null"> zr_record_value = #{zrRecordValue,jdbcType=DECIMAL}, </if> <if test="jrRecordValue != null"> jr_record_value = #{jrRecordValue,jdbcType=DECIMAL}, </if> <if test="lastRecordValue != null"> last_record_value = #{lastRecordValue,jdbcType=DECIMAL}, </if> <if test="zrAmount != null"> zr_amount = #{zrAmount,jdbcType=DECIMAL}, </if> <if test="amountDays != null"> amount_days = #{amountDays,jdbcType=INTEGER}, </if> <if test="meterType != null"> meter_type = #{meterType,jdbcType=CHAR}, </if> <if test="meterState != null"> meter_state = #{meterState,jdbcType=CHAR}, </if> <if test="hasJrValue != null"> has_jr_value = #{hasJrValue,jdbcType=CHAR}, </if> </set> where meter_id = #{meterId,jdbcType=VARCHAR} and sta_date = #{staDate,jdbcType=DATE}
时间: 2024-04-19 18:29:02 浏览: 115
解决mybatis执行SQL语句部分参数返回NULL问题
这段代码是一个 SQL UPDATE 语句,用于更新表 `used_mei_ri` 中的记录。它使用了动态 SQL 的语法,根据条件判断来决定更新哪些字段。
`<set>` 标签表示要更新的字段列表的开始。之后的每个 `<if>` 标签都代表一个条件,如果该条件成立,则更新相应的字段。
以下是每个条件的解释:
- `meterCode != null`:如果 `meterCode` 不为空,则更新 `meter_code` 字段为给定的值。
- `zrRecordValue != null`:如果 `zrRecordValue` 不为空,则更新 `zr_record_value` 字段为给定的值。
- `jrRecordValue != null`:如果 `jrRecordValue` 不为空,则更新 `jr_record_value` 字段为给定的值。
- `lastRecordValue != null`:如果 `lastRecordValue` 不为空,则更新 `last_record_value` 字段为给定的值。
- `zrAmount != null`:如果 `zrAmount` 不为空,则更新 `zr_amount` 字段为给定的值。
- `amountDays != null`:如果 `amountDays` 不为空,则更新 `amount_days` 字段为给定的值。
- `meterType != null`:如果 `meterType` 不为空,则更新 `meter_type` 字段为给定的值。
- `meterState != null`:如果 `meterState` 不为空,则更新 `meter_state` 字段为给定的值。
- `hasJrValue != null`:如果 `hasJrValue` 不为空,则更新 `has_jr_value` 字段为给定的值。
`</set>` 标签表示字段列表的结束。
接下来是 `where` 子句,用于指定更新的条件。它使用了两个条件:
- `meter_id = #{meterId,jdbcType=VARCHAR}`:`meter_id` 字段等于给定的值。
- `sta_date = #{staDate,jdbcType=DATE}`:`sta_date` 字段等于给定的日期值。
这样,该 SQL 语句将会根据给定条件更新 `used_mei_ri` 表中符合条件的记录的相应字段的值。
阅读全文