MySQL条件检索_WHERE
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的更多相关文章
- InnoDB这种行锁实现特点意味者:只有通过索引条件检索数据,InnoDB才会使用行级锁,否则,InnoDB将使用表锁!
InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁来实现的. InnoDB这种行锁实现特点意味者:只有通过索引条件检索数据,InnoD ...
- Hibernate入门(十二)离线条件检索
Hibernate——离线条件检索DetachedCriteria DetachedCriteria翻译为离线条件查询,因为它是可以脱离Session来使用的一种条件查询对象,我们都知道Criteri ...
- asp.net用三层实现多条件检索
众所周知,三层将项目分为界面层,业务逻辑层和数据訪问层(以最主要的三层为例) 相同都知道,多条件检索事实上就是依据用户选择的条件项,然后来拼sql语句 那么.既然要依据用户选择的条件项来拼sql语句, ...
- MySQL条件判断处理函数_20160925
MySQL条件判断处理 一.假如我想把salesperson 分成 5组,计算每个销售分组的业绩 首先先将销售分组 SELECT *, CASE WHEN salesperson IN (" ...
- 记mysql条件分支语句CASE WHEN THEN ELSE END的使用
记一次基于mysql数据库查询时条件分支语句使用 表达式格式:CASE column WHEN 条件1 THEN 表达式1 WHEN 条件2 THEN 表达式2 .... ELSE 表达式 END [ ...
- springmvc+spring+mybatis分页查询实例版本3,添加条件检索
在第二个版本上添加了姓名模糊查询,年龄区间查询;自以为easy,结果发现mybatis的各种参数写法基本搞混或是忘了,zuo啊,直接上代码,然后赶紧把mybatis整理一遍再研究自己的项目,应该还会有 ...
- mysql条件查询中AND与OR联合使用的注意事项!
mysql查询中经常会用到AND与OR一起使用的情况,可如果写法不对,往往会起到相反的效果,这不,前几天就碰到了,最后测试果然提了一堆bug!!!! 废话就不多说了,主要总结一下几点: 一 当mysq ...
- Mysql中文检索匹配与正则
今天在用sql模糊查询包含字母d的时候,发现一些不包含此字母的也被查询出来了: SELECT * FROM custom WHERE custom_realname LIKE '%d%' 查询了一下, ...
- mysql条件查询and or使用实例及优先级介绍
mysql and与or介绍 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来. 使用OR关键字时: 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来. 如果不符合这 ...
随机推荐
- Linux网络设备驱动 _驱动模型
Linux素来以其强大的网络功能著名,同时, 网络设备也作为三大设备之一, 成为Linux驱动学习中必不可少的设备类型, 此外, 由于历史原因, Linux并没有强制对网络设备贯彻其"一切皆 ...
- 【Zookeeper系列】ZooKeeper伸缩性(转)
原文地址:https://www.cnblogs.com/sunddenly/p/4143306.html 一.ZooKeeper中Observer 1.1 ZooKeeper角色 经过前面的介绍,我 ...
- JS学习大作业-Excel
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- ArcGIS map preview in Power BI service
登录PowerBI网站:www.powerBI.com 点[设置],如下图: 找到[适用PowerBI的ArcGIS地图(预览)] 点击[应用]即可. 打开PowerBI DestTop客户端,找 ...
- python中的张量运算(tensor)
1,首先比较二者的参数部分:这就是处理0阶张量和1阶张量的区别 np.max:(a, axis=None, out=None, keepdims=False) 求序列的最值 最少接收一个参数 axis ...
- 11.8luffycity(3)
2018-11-8 19:11:49 打算过几天回学校! 越努力越幸运~!永远不要高估自己! 做一下笔记,等路飞项目做完放上github连接 1. 复杂的跨域 class CORSMiddleware ...
- LomBok插件的使用
LomBok插件的使用 By Zhai 简介: LomBok是一个通过简单注解就可以减少一些冗余代码编写的小工具.例如 @Setter @Getter 用于实例类上该类就不需要写set get 方法. ...
- swp文件已存在
vim编辑某个文件时,提示.xxx.sh.swp文件已存在是因为异常退出后,linux会生成一个swp文件,无论选择什么,下次进入还是会提示ll 命令无法看到文件使用 rm -rf .xxx.sh.s ...
- 电子产品使用感受之———我用过的最昂贵的手机壳:otter box 和 Apple 原装清水壳的对比
2014年9月27日,我买到了我所使用的第一部 iPhone — iPhone 5C 蓝色.今天,2019年3月2日,我手里拿的是iPhoneXR 蓝色,两款手机如出一辙的设计和手感,让我充满了无限的 ...
- Linux 安装mysql mariadb配置
CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置 1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server ...