SQL BETWEEN 运算符
BETWEEN运算符选择给定范围内的值。值可以是数字,文本或日期。
BETWEEN运算符是包含性的:包括开始和结束值。
SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
演示数据库
在本教程中,主要是使用Mysql数据库,虽然和其他数据有一定的差异,不影响对SQL语法的讲解。
相应的脚本请查看上一篇文章:开始前准备环境
以下是 "member" 表中的数据:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1010 | 10001 | 112331 | 张三 | xxx | 广东 | 1 |
1011 | 10002 | 112333 | 李四 | xxx | 北京 | 1 |
1012 | 10003 | 1234567 | 王五 | xxx | 广东 | 1 |
1013 | 10004 | 112335 | 张飞 | xxx | 广东 | 1 |
1014 | 10005 | 112336 | 关习 | xxx | 上海 | 1 |
1015 | 10006 | 112337 | 关平 | xxx | 湖南 | 1 |
1016 | 10007 | 112338 | 小李 | xxx | 广东 | 1 |
1017 | 10008 | 112339 | 韩飞 | xxx | 深圳 | 1 |
1018 | 10009 | 112310 | 刘备 | xxx | 三国 | 1 |
1019 | 10010 | 112312 | 吴越 | xxx | 广西 | 1 |
1020 | 10011 | 112312 | 韩信 | xxx | 南京 | 1 |
1021 | 10012 | 112331 | 张包 | xxx | 广东 | 1 |
以下是“product”表中的数据:
id | product_name | english_name | price | category_id | created_time |
---|---|---|---|---|---|
1 | 香蕉 | Banana | 10 | 1 | 2023/10/22 11:44 |
2 | 苹果 | Apple | 15 | 1 | 2023/10/22 11:44 |
3 | 桃子 | Peach | 9 | 1 | 2023/10/6 11:44 |
4 | 梨子 | Pear | 8 | 1 | 2023/10/20 11:45 |
5 | 鸡蛋 | Eggs | 3 | 2 | 2023/10/22 11:45 |
6 | 鸭蛋 | Duck's egg | 4 | 2 | 2023/10/22 11:45 |
7 | 猪肉 | Pork | 12 | 2 | 2023/10/22 11:45 |
8 | 花生油 | Peanut oil | 20 | 3 | 2023/10/10 11:46 |
9 | 面条 | Noodle | 2 | 4 | 2023/10/3 11:46 |
10 | 笔记本 | Notebook | 15 | 5 | 2023/10/12 11:46 |
BETWEEN 运算符实例
以下SQL语句选择会员ID(member_id)在1012到1015之间的所有会员:
示例语句:
SELECT * FROM member
WHERE member_id BETWEEN 1012 AND 1015;
查询结果:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1012 | 10003 | abc123 | www.jhelp.net | www.jhelp.net | 广东 | 1 |
1013 | 10004 | 112335 | 张飞 | www.jhelp.net | 广东 | 1 |
1014 | 10005 | 112336 | 关习 | www.jhelp.net | 上海 | 1 |
1015 | 10006 | 112337 | 关平 | www.jhelp.net | 湖南 | 1 |
NOT BETWEEN 操作符实例
要显示会员ID(member_id)不在1012到1015之外的所有会员,请使用NOT BETWEEN:
示例语句:
SELECT * FROM member
WHERE member_id NOT BETWEEN 1012 AND 1015;
查询结果:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1010 | 10001 | 112331 | 张三 | www.jhelp.net | 广东 | 1 |
1011 | 10002 | 112333 | 李四 | www.jhelp.net | 北京 | 1 |
1016 | 10007 | 112338 | 小李 | www.jhelp.net | 广东 | 1 |
1017 | 10008 | 112339 | 韩飞 | www.jhelp.net | 深圳 | 1 |
1018 | 10009 | 112310 | 刘备 | www.jhelp.net | 三国 | 1 |
1019 | 10010 | 112312 | 吴越 | www.jhelp.net | 广西 | 1 |
1020 | 10011 | 112312 | 韩信 | www.jhelp.net | 南京 | 1 |
1021 | 10012 | 112331 | 张包 | www.jhelp.net | 广东 | 1 |
1022 | 100110 | 112355 | 新添加 | www.jhelp.net | 北京 | 1 |
1023 | 100111 | 112355333 | 新添加2 | www.jhelp.net | 北京 |
带有 IN 的 BETWEEN 操作符实例
以下SQL语句选择价格(price)在10到20之间但category_id不是1、2或3的所有产品:
示例语句:
SELECT * FROM product
WHERE (price BETWEEN 10 AND 20)
AND NOT category_id IN (1,2,3);
查询结果:
id | product_name | english_name | price | category_id | created_time |
---|---|---|---|---|---|
10 | 笔记本 | Notebook | 15 | 5 | 2023/10/22 11:46 |
带有文本值的 BETWEEN 操作符实例
以下SQL语句选择 所有产品的英文名(english_name) 在 'A' 和 'H' 之间:
示例语句:
SELECT * FROM product
WHERE english_name BETWEEN 'A' AND 'H'
ORDER BY english_name;
查询结果:
id | product_name | english_name | price | category_id | created_time |
---|---|---|---|---|---|
1 | 香蕉 | Banana | 10 | 1 | 2023/10/22 11:44 |
2 | 苹果 | Apple | 15 | 1 | 2023/10/22 11:44 |
5 | 鸡蛋 | Eggs | 3 | 2 | 2023/10/22 11:45 |
6 | 鸭蛋 | Duck's egg | 4 | 2 | 2023/10/22 11:45 |
带有文本值的 NOT BETWEEN 操作符实例
以下SQL语句选择所有产品的英文名(english_name)不在'A' 和'H' 之间:
示例语句:
SELECT * FROM product
WHERE english_name NOT BETWEEN 'A' AND 'H'
ORDER BY english_name;
查询结果:
id | product_name | english_name | price | category_id | created_time |
---|---|---|---|---|---|
3 | 桃子 | Peach | 9 | 1 | 2023/10/6 11:44 |
4 | 梨子 | Pear | 8 | 1 | 2023/10/22 11:45 |
7 | 猪肉 | Pork | 12 | 2 | 2023/10/22 11:45 |
8 | 花生油 | Peanut oil | 20 | 3 | 2023/10/10 11:46 |
9 | 面条 | Noodle | 2 | 4 | 2023/10/3 11:46 |
10 | 笔记本 | Notebook | 15 | 5 | 2023/10/22 11:46 |
带有日期值的 BETWEEN 操作符实例
以下 SQL 语句选取 created_time 介于 '2023-10-01' 和 '2023-10-10' 之间的所有产品:
示例语句:
SELECT * FROM product
WHERE created_time BETWEEN '2023-10-01' AND '2023-10-10';
查询结果:
id | product_name | english_name | price | category_id | created_time |
---|---|---|---|---|---|
3 | 桃子 | Peach | 9 | 1 | 2023/10/6 11:44 |
9 | 面条 | Noodle | 2 | 4 | 2023/10/3 11:46 |
请注意,在不同的数据库中,BETWEEN 操作符会产生不同的结果!
- 在一些数据库中,BETWEEN 选取介于两个值之间但不包括两个测试值的字段。
- 在一些数据库中,BETWEEN 选取介于两个值之间且包括两个测试值的字段。
- 在一些数据库中,BETWEEN 选取介于两个值之间且包括第一个测试值但不包括最后一个测试值的字段。
因此,请检查您的数据库是如何处理 BETWEEN 操作符!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
本文链接:https://www.jhelp.net/p/0zMpCok1j4HVRPPQ (转载请保留)。
关注下面的标签,发现更多相似文章
本站推荐
-
1154
-
1079
-
943
-
940
-
935
文章目录