从MYSQL更新时为什么会出现语法错误?

时间:2019-07-12 09:55:47

标签: java mysql spring spring-boot

为了接收参数并更新数据,我将伪造的数据放入其中并运行更新。

        UPDATE
        TB_PUSH_MESSAGE
        SET 1=1
        <if test="status != ''">
        , status = #{status}
        </if>
        <if test="body != null">
        , body = #{body}
        </if>
        WHERE
        seq_no = #{seq_no}

但是出现错误

  

由于:java.sql.SQLSyntaxErrorException:您的错误   SQL语法;检查与您的MySQL服务器相对应的手册   在'1 = 1附近使用的正确语法的版本                 ,状态=“ 0”

          WHERE       seq_no = '1'' at line 3

如果我不能在其中放入假数据,该如何解决?

1 个答案:

答案 0 :(得分:0)

问题似乎出在您的1 = 1语句上。在这种情况下,第一个1被视为“表TB_PUSH_MESSAGE中的第一列”。因此,您可以将此行读为set seq_no = 1,这很可能与列的类型不兼容。

update equivalent of WHERE '1' = '1'-这个问题似乎很有帮助/相关/重复。