文档章节

SQL-- or与and的混合使用

求是科技
 求是科技
发布于 2015/10/16 18:19
字数 237
阅读 934
收藏 5

需求分析

用户可以用手机号码 或 邮箱名 +新旧密码 来修改该账号的密码

我写的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}


© 著作权归作者所有

共有 人打赏支持
求是科技
粉丝 89
博文 456
码字总数 228627
作品 0
成都
后端工程师
加载中

评论(1)

jiao1990
jiao1990
正常情况,and优先级高,我建议用括号,易读。
Windows身份验证模式和混合模式的区别

某日,A君问起Windows身份验证模式和混合模式验证的区别与优缺时,根据安全性的考虑,按照到了此文作为参考,学习下~ 在安装过程中,必须为数据库引擎选择身份验证模式。 可供选择的模式有两...

Cnlouds
2013/10/30
0
0
Spring Boot [集成-MyBatis]

导读: 在上篇文章中我们介绍了spring-data-jpa的一些常用方法,在这篇文章中我们在介绍关于mybatis与Spring Boot 的集成,及一些常用方法 集成: 这里有两种方式,一种是常规的Spring 应用的...

yangrd
08/27
0
0
SQL Server 2016新亮点全揭秘

  【IT168 资讯】微软即将在6月1号发布的SQL Server 2016可以为数据提供更好的安全性,并且能够支持混合云,能够查询非结构化的数据源。   很多企业发现在他们的数据库里有很大一部分的数...

it168网站
2016/05/18
0
0
SQL Server之备份和还原系统数据库

系统数据库是管理和维护SQL Server所必须的数据库,对服务器实例的运行至关重要。每次进行大量更新后必须备份多个系统数据库,包括master、model、msdb,备份这些系统数据库,就可以在发生系...

杨书凡
2017/12/06
0
0
Confluence 6 安装 SQL Server

如果你还没有在安装可以连接的 Microsoft SQL Server 数据库,请先下载后进行安装。请参考 MSDN 上 Installation for SQL Server 的指南。 有关授权模式的说明... SQL Server 允许有 2 种的授...

honeymose
05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash各类扩展详解

Bash各类扩展详解 Bash中主要包括大括号扩展、波浪号扩展、变量扩展、子命令扩展、文件名扩展和算数扩展。这些扩展组合在一起为Bash带来了极大的易用性。掌握这些扩展的用法和功能,能够为B...

小陶小陶
今天
1
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
5
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
3
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部