这是命令行操作MySQL数据库系列博客的第十四篇,今天这篇博客记录between and如何进行查询。(BETWEEN AND 与 NOT BETWEEN AND)
简介
BETWEEN AND:查询包含在此区间内的所有整数,例如 “i >= 60 AND i <= 80”,可用数据库术语表示:“i BETWEEN 60 AND 80”.
NOT BETWEEN AND:查询不包含在此取间内的所有整数,例如"i < 60 OR i > 80",可用数据库术语表示:“i NOT BETWEEN 60 AND 80”.
BETWEEN AND查询
当我们需要查询指定范围内的数据(如: id 从0 到 100)的时候,MySQL提供了关键字BETWEEN AND,用来实现判断字段的数值是否在指定范围内的条件查询。该关键字的具体语法形式如下:
推荐写法:
select * from 表名 where 整型字段名 BETWEEN 0 AND 100;
可写成如下格式(不推荐):
select * from 表名 where 整型字段名 >= 0 AND 整型字段名 <= 100;
(类似于C/C++语言的:i >= 0 && i <=100)
当满足条件大于等于零且小于等于100以内的数据都会被查询出来!
例:
-
创建一张表并插入数据
create table between_and(id int PRIMARY KEY AUTO_INCREMENT, name varchar(32), age int, _date date); insert into between_and values(1, '甲', 20, '2000-4-26'), (2, '乙', 22, '1998-3-12'), (3, '乙', 18, '2002-9-29'), (4, '丁', 21, '1999-5-22');
-
查询年纪在19 至 25岁之间的数据
select * from between_and where age BETWEEN 19 AND 25;
-
当然除了可以整数类型外,还可以查询日期类型
select * from between_and where _date BETWEEN '2002-09-29' AND '2000-04-26';
-
可以使用 大于号> 小于号< 方式表示(不推荐)
select * from between_and where _date >= '1998-03-12' AND _date <= '2020-09-29';
NOT BETWEEN AND查询
不符合范围的数据记录查询:
通过关键字NOT设置反向查询非查询范围的条件,具体SQL语句如下:
推荐写法:
select * from 表名 where 整型字段名 NOT BETWEEN 0 AND 100;
可写成如下格式(不推荐):
select * from 表名 where 整型字段名 < 0 OR 整型字段名 > 100;
(类似于C/C++语言的:i < 0 || i >100)
当满足条件小于零且大于100的数据都会被查询出来!
例:
-
查询年纪不在19 至 25岁之间的数据
select * from between_and where age NOT BETWEEN 19 AND 25;
-
查询日期类型98年至00年的所有数据
select * from between_and where _date NOT BETWEEN '1998-03-12' AND '2000-04-26';
-
可以使用 大于号> 小于号< 方式表示(不推荐)
select * from between_and where (_date < '1998-03-12' OR _date > '2000-04-26');
注意:只能查询整型(int) 与 日期类型(date)。
例:
使用BETWEEN AND查询字符串类型:
select * from between_and where name BETWEEN '甲' AND '丁';
查询结果为空!!!
总结:
BETWEEN AND查询语句其实不难,只要懂得一点点的数学条件判段,都可以学会;只需注意,BETWEEN AND 只能查询整型int与日期类型date的数据,其它类型都查询不了。