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. adsas数据库去O记

    adsas 数据库是用于广告买量数据分析;在17年由 Oracle 迁移到 PostgreSQL.现把之前的迁移笔记整理下.本次迁移表91个:存储过程21个:数据库大小2G. 1. 准备Postgre ...

  2. CentOS 7下安装samba

    Samba是一种软件,它可以运行在非Windows平台上,比如UNIX, Linux, IBM System 390, OpenVMS或其他操作系统.Samba使用安装在主机上的TCP/IP协议.当正 ...

  3. 关于ping地址的几个意义

    1.ping 127.0.0.1 判断电脑的tcp/ip协议栈有没有问题 2.ping 本机ip 判断电脑的网卡驱动有没有问题 3.ping 网关 判断数据是否可以到达路由 4.ping www.ba ...

  4. Ubuntu16.04首次root登录设置

    一.首次登录root模式设置 当第一次安装并登录Ubuntu16.04系统时,系统默认只能使用guest模式登录.登录系统后,在图像界面的右上方的系统设置中可转换为普通用户模式. 在普通登录模式下,经 ...

  5. SQL Server清空日志以及查看日志大小语句

    为了安全起见,使用的时候,先数据备份一遍 作者hongb:SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) https://www.cnblogs.com ...

  6. Qt编写自定义控件属性设计器

    以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用场景需 ...

  7. HTTP 请求头 WIKI 地址

    https://en.wikipedia.org/wiki/List_of_HTTP_header_fields

  8. [原][openstack-pike][controller node][issue-2][glance] Could not parse rfc1738 URL from string 'mysql+pymysql=http://glance:glance@controller/glance'

    问题点 在手动上传镜像的时候:出现错误 Could not parse rfc1738 URL from string 'mysql+pymysql=http://glance:glance@cont ...

  9. django-registration

    快速开始指南 在安装django-registration之前,你需要先安装Django.django-registration 0.8需要Django1.1或更新版本的支持. Django进一步的信 ...

  10. 22.2、react生命周期与react脚手架(二)

    一.类:es6 <script type="text/babel"> class Person{ age = 10; constructor(name){ this.n ...