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. Qt编写自定义控件8-动画按钮组控件

    前言 动画按钮组控件可以用来当做各种漂亮的导航条用,既可以设置成顶部底部+左侧右侧,还自带精美的滑动效果,还可以设置悬停滑动等各种颜色,原创作者雨田哥(QQ:3246214072),驰骋Qt控件界多年 ...

  2. [LeetCode] Clone Graph 克隆无向图

    Given a reference of a node in a connected undirected graph, return a deep copy (clone) of the graph ...

  3. axios 使用post方式传递参数,后端接受不到

    参考 https://segmentfault.com/a/1190000012635783

  4. vue里使用create、mounted调用方法的正确姿势

    参考:https://blog.csdn.net/Honnyee/article/details/82421844

  5. 向comboboxEdit中动态添加数据库中保存的用户自定义单位制的名称

    if (radioGroup1.SelectedIndex == 2) { bool _Flag = true; sm.SetLciVisible(lciDelete, _Flag); sm.SetL ...

  6. 【python】——三级菜单

    作业需求: 打印三级菜单 可返回上一级 可随时退出程序 #!/usr/bin/env python # -*- coding:utf-8 -*- #Author: __Json.Zzgx__ menu ...

  7. thinkphp 判断有没有登录 没有登录就自动给他打到登录去

    html 代码 <a href="javascript:;" class="user_uid"> <i class="iconfon ...

  8. 有多个正整数存放在数组中,编写一个函数要求偶数在左边由小到大顺序放置,奇数在右边,也是由小到大顺序放置,Java实现

    思路: * 1.首先分左右 * 2.分好再排序(左边和右边都单独排序) 第一步:分左右 可得注意了: 大体思路最先是从两头出发分成4种情况讨论(左or右,奇数or偶数)循环处理,出口是双层的嵌套循环( ...

  9. centOs6.5配置启动ssh

    .非root用户则执行su或su - 或su root或su - root切换为root用户 2.查看SSH是否安装(检查是否装了SSH包) 输入命令:rpm -qa | grep ssh 注:若没安 ...

  10. MOT南京站 | 卓越研发之路:锻造顶级后端系统

    代码是互联网企业信息化核心,也是众多研发团队智慧的结晶,如何将代码发挥到最大价值?如何用代码快.准.好的实现需求?相信这是很多IT从业者所困扰的问题. MOT南京站首期以『锻造顶级后端系统』为主题,我 ...