MySQL使用WHERE命令来限定数据查询条件。

语法:SELECT 属性1,属性2 FROM 表名 WHERE 条件1 OR 条件2 AND 条件3

说明:WHERE同样适用于UPDATE、DELETE等命令;

            使用OR、AND实现多限制条件下的数据查询;

where执行顺序是从左往右执行的,在数据量小的时候不用考虑,但数据量多的时候要考虑条件的先后顺序,此时应遵守一个原则:排除越多的条件放在第一个;

           使用主键作为查询的限定条件,速度是非常快的。

操作符说明表(A=10,B=20)

操作符 描述 示例说明
= 等号,检测两个值是否相等,若相等,则返回True (A = B)返回False
<>,!= 不等于,检测两个值是否相等,若不相等,则返回True (A != B)返回True
> 大于,检测左边的值是否大于右边的值,若左边的值大于右边的值,则返回True (A > B)返回False
< 小于,检测左边的值是否小于右边的值,若左边的值小于右边的值,则返回True (A < B)返回True
>= 不小于,检测左边的值是否不小于右边的值,若左边的值不小于右边的值,则返回True (A >= B)返回False
<= 不大于,检测左边的值是否不大于右边的值,若左边的值不大于右边的值,则返回True (A <= B)返回True
BETWEEN....AND.... 介于指定范围之内 where num between 3 and 5
NOT BETWEEN...AND... 不在限定的范围内 where num not between 3 and 5
IN(项1,项2,项3...) 值在指定项内 where num in (3,5,6)
NOT IN(项1,项2,项3...) 值不在指定项内 where num not in (3,5,6)
IS NULL 空值判断符 where name is null
IS NOT NULL 非空值判断符 where name is not null
NOT、AND、OR 取反,与,或,优先级NOT>AND>OR,用于多个逻辑连接 where num>2 AND num<6
LIKE 搜索匹配,常与模式匹配符配合使用 ——
NOT LIKE LIKE的反义 ——
% 模式匹配符,表示任意字符串 where username like '%user'

若A或B的值为字符型,需要加上" "或' '。

默认情况下,where语句是不区分字母大小写的,需要通过BINARY强制区分。

示例:

mysql> select num,name from courses where name=.'语文';
+-----+--------+
| num | name |
+-----+--------+
| 2 | 语文 |
+-----+--------+ mysql> SELECT * from tutorials_tbl WHERE tutorial_author='Sanjay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
| 6 | JAVA Tutorial | SANJAY | 2007-05-26 |
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec) mysql> SELECT * from tutorials_tbl WHERE BINARY tutorial_author='Sanjay'; //强制区分大小写
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+

 mysql> select num,name from courses where num>2 AND num<5;
 +-----+--------+
 | num | name |
 +-----+--------+
 | 3 | 英语 |
 | 4 | 化学 |
 +-----+--------+
 2 rows in set (0.00 sec)

 mysql> select num,name from courses where NOT num>2;
 +-----+--------+
 | num | name |
 +-----+--------+
 | 1 | 数学 |
 | 2 | 语文 |
 +-----+--------+
 2 rows in set (0.00 sec)

 mysql> SELECT * FROM courses WHERE name LIKE '%文';
 +-----+--------+-----------------+
 | num | name | submission_date |
 +-----+--------+-----------------+
 | 2 | 语文 | 2018-01-30 |
 +-----+--------+-----------------+
 1 row in set (0.00 sec)

MySQL条件检索_WHERE的更多相关文章

  1. InnoDB这种行锁实现特点意味者:只有通过索引条件检索数据,InnoDB才会使用行级锁,否则,InnoDB将使用表锁!

    InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁来实现的. InnoDB这种行锁实现特点意味者:只有通过索引条件检索数据,InnoD ...

  2. Hibernate入门(十二)离线条件检索

    Hibernate——离线条件检索DetachedCriteria DetachedCriteria翻译为离线条件查询,因为它是可以脱离Session来使用的一种条件查询对象,我们都知道Criteri ...

  3. asp.net用三层实现多条件检索

    众所周知,三层将项目分为界面层,业务逻辑层和数据訪问层(以最主要的三层为例) 相同都知道,多条件检索事实上就是依据用户选择的条件项,然后来拼sql语句 那么.既然要依据用户选择的条件项来拼sql语句, ...

  4. MySQL条件判断处理函数_20160925

    MySQL条件判断处理 一.假如我想把salesperson 分成 5组,计算每个销售分组的业绩 首先先将销售分组 SELECT *, CASE WHEN salesperson IN (" ...

  5. 记mysql条件分支语句CASE WHEN THEN ELSE END的使用

    记一次基于mysql数据库查询时条件分支语句使用 表达式格式:CASE column WHEN 条件1 THEN 表达式1 WHEN 条件2 THEN 表达式2 .... ELSE 表达式 END [ ...

  6. springmvc+spring+mybatis分页查询实例版本3,添加条件检索

    在第二个版本上添加了姓名模糊查询,年龄区间查询;自以为easy,结果发现mybatis的各种参数写法基本搞混或是忘了,zuo啊,直接上代码,然后赶紧把mybatis整理一遍再研究自己的项目,应该还会有 ...

  7. mysql条件查询中AND与OR联合使用的注意事项!

    mysql查询中经常会用到AND与OR一起使用的情况,可如果写法不对,往往会起到相反的效果,这不,前几天就碰到了,最后测试果然提了一堆bug!!!! 废话就不多说了,主要总结一下几点: 一 当mysq ...

  8. Mysql中文检索匹配与正则

    今天在用sql模糊查询包含字母d的时候,发现一些不包含此字母的也被查询出来了: SELECT * FROM custom WHERE custom_realname LIKE '%d%' 查询了一下, ...

  9. mysql条件查询and or使用实例及优先级介绍

    mysql and与or介绍 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来. 使用OR关键字时: 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来. 如果不符合这 ...

随机推荐

  1. K8s(2)-部署应用

    一旦运行了Kubernetes集群,就可以在其上部署容器化应用程序.为此,您需要创建Kubernetes Deployment配置.Deployment指示Kubernetes如何创建和更新应用程序的 ...

  2. Cocos2dx项目在各种IDE中新建类之后的可行编译方式

    注:这里说可行,但是并不是最好的,只是可以完成编译. 1.linux+code::blocks下的cocos2dx项目新建一个类TestScene.h 新建的TestScene.h和TestScene ...

  3. sqlserver等软件下载

    http://msdn.itellyou.cn/ 找到所需要的,复制下载路径,到迅雷下载

  4. 解决macOS git clone Azure DevOps提示身份认证失败问题

    macOS的终端输入git clone对应Azure DevOps的Git地址,紧接着输入正确的用户名和密码仍然会提示认证失败.解决的方法是安装微软的Git-Credential-Manager.由于 ...

  5. NB-Iot的应用领域、覆盖范围,是什么

    该部分分享的是物联网各垂直应用领域里,NB-IoT技术的部署,看看适合NB-IoT技术的垂直应用场景有哪些?垂直应用服务商又该如何部署? 1 NB-IoT适合的垂直应用场景有哪些? 2 NB-IoT垂 ...

  6. zhenya moves from parents

    Zhenya moved from his parents' home to study in other city. He didn't take any cash with him, he onl ...

  7. x86指令格式

    学习于逆向工程核心原理IA-32指令章节 格式 x86指令格式 指令前缀  出现特定操作码时用作补充说明,图中的冒号前的64就是指令前缀 操作码 实际的指令,如图中的FF.89.80都是操作码 Mod ...

  8. Nestjs 缓存

    Docs: https://docs.nestjs.com/techniques/caching yarn add @nestjs/mongoose mongoose yarn add cache-m ...

  9. Date类型与字符串之间的转换

    Java中Date类型与字符串转化   (一)Date与字符串的转化   Date.String.Timestamp之间的转换!   public static void main(String[]  ...

  10. What do cryptic Github comments mean?

    LGTM  —  looks good to me ACK  —  acknowledgement, i.e. agreed/accepted change NACK/NAK — negative a ...