需求分析
用户可以用手机号码 或 邮箱名 +新旧密码 来修改该账号的密码
我写的SQL如下
update t_user set
PASSWORD = #{newPassword}
where
PHONE_NUM = #{loginInfo}
or
EMAIL = #{loginInfo}
AND
t_user.PASSWORD = #{oldPassword}
上述SQL的本意是:用户输入的账号(手机号码或者邮箱名)与密码同时正确时,便可修改该账号的密码。
结果,测试过程中发现,or后面的AND条件好像不起作用,换句话中,无论旧密码输入什么,整体修改密码功能都能成功。
网上搜索一下,现改成如下,可以满足需求。来不及思考原因,大致推测下,是由于or在AND前面引起的,先记录下来,以后找时间将这个弄懂。
update t_user set
PASSWORD = #{newPassword}
where
t_user.PASSWORD = #{oldPassword}
AND
PHONE_NUM = #{loginInfo}
or
EMAIL = #{loginInfo}