出问题的SQL 报错日志 原因分析 sql语句是由mybatis根据条件动态拼接生成的,当需要更新的参数全部为空时,set标签中的if条件全部都不满足,所以在动态拼接sql时set关键字以及set标签中的参数都没有拼接上,所以导致sql语句拼接出错。 解决方案 在set标签中添加一条不能为空的字段,确保每次更新时set标签中至少有一个字段不为空,而且要确保该值不会真的发生变化,因为并不是真的要更新这个字段,所以我加的字段是where条件中的一个字段,修改后的sql如下: