SQL-- or与and的混合使用

需求分析sql

用户能够用手机号码 或 邮箱名 +新旧密码 来修改该帐号的密码
测试

我写的SQL以下code

update t_user set
        PASSWORD = #{newPassword}
where
         PHONE_NUM = #{loginInfo}
or
          EMAIL = #{loginInfo}
AND
          t_user.PASSWORD = #{oldPassword}

上述SQL的本意是:用户输入的帐号(手机号码或者邮箱名)与密码同时正确时,即可修改该帐号的密码。class

结果,测试过程当中发现,or后面的AND条件好像不起做用,换句话中,不管旧密码输入什么,总体修改密码功能都能成功。
date

网上搜索一下,现改为以下,能够知足需求。来不及思考缘由,大体推测下,是因为or在AND前面引发的,先记录下来,之后找时间将这个弄懂。搜索

update t_user set
            PASSWORD = #{newPassword}
 where
            t_user.PASSWORD = #{oldPassword}
 AND
            PHONE_NUM = #{loginInfo}
or
            EMAIL = #{loginInfo}
相关文章
相关标签/搜索