问题描述
在做表内容的更新时,只有email和note两个字段更新成功,而name和phone字段则不更新
也不报错
SQL语句
<update id="updaBook">
update phonebook
<set>
<if test="name!=null" >
name=#{name,jdbcType=VARCHAR},
</if>
<if test="phone!=null">
phone=#{phone,jdbcType=VARCHAR},
</if>
<if test="email!=null">
email = #{email,jdbcType=VARCHAR},
</if>
<if test="note!=null">
note = #{note,jdbcType=VARCHAR},
</if>
</set>
where name=#{name,jdbcType=VARCHAR} and phone=#{phone,jdbcType=VARCHAR}
</update>
解决
经过调试后发现是因为where语句中的name和phone字段与set中的字段名重复导致的,更换where中判断条件后更新成功,原理暂不清楚,有大佬欢迎指点一下。