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}
相關文章
相關標籤/搜索