BETWEEN 用法

SQL BETWEEN 运算符

BETWEEN运算符选择给定范围内的值。值可以是数字,文本或日期。

BETWEEN运算符是包含性的:包括开始和结束值。

SQL BETWEEN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

演示数据库

在本教程中,主要是使用Mysql数据库,虽然和其他数据有一定的差异,不影响对SQL语法的讲解。

相应的脚本请查看上一篇文章:开始前准备环境


以下是 "member" 表中的数据:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三xxx广东1
101110002112333李四xxx北京1
1012100031234567王五xxx广东1
101310004112335张飞xxx广东1
101410005112336关习xxx上海1
101510006112337关平xxx湖南1
101610007112338小李xxx广东1
101710008112339韩飞xxx深圳1
101810009112310刘备xxx三国1
101910010112312吴越xxx广西1
102010011112312韩信xxx南京1
102110012112331张包xxx广东1

以下是“product”表中的数据:

idproduct_nameenglish_namepricecategory_idcreated_time
1香蕉Banana102023/10/22 11:44
2苹果Apple152023/10/22 11:44
3桃子Peach92023/10/6 11:44
4梨子Pear82023/10/20 11:45
5鸡蛋Eggs32023/10/22 11:45
6鸭蛋Duck's egg42023/10/22 11:45
7猪肉Pork122023/10/22 11:45
8花生油Peanut oil202023/10/10 11:46
9面条Noodle22023/10/3 11:46
10笔记本Notebook152023/10/12 11:46

BETWEEN 运算符实例

以下SQL语句选择会员ID(member_id)在1012到1015之间的所有会员:

示例语句:

SELECT * FROM member  
WHERE member_id BETWEEN 1012 AND 1015;

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101210003abc123www.jhelp.netwww.jhelp.net广东1
101310004112335张飞www.jhelp.net广东1
101410005112336关习www.jhelp.net上海1
101510006112337关平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_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三www.jhelp.net广东1
101110002112333李四www.jhelp.net北京1
101610007112338小李www.jhelp.net广东1
101710008112339韩飞www.jhelp.net深圳1
101810009112310刘备www.jhelp.net三国1
101910010112312吴越www.jhelp.net广西1
102010011112312韩信www.jhelp.net南京1
102110012112331张包www.jhelp.net广东1
1022100110112355新添加www.jhelp.net北京1
1023100111112355333新添加2www.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);

查询结果:

idproduct_nameenglish_namepricecategory_idcreated_time
10笔记本Notebook152023/10/22 11:46

带有文本值的 BETWEEN 操作符实例

以下SQL语句选择 所有产品的英文名(english_name) 在  'A' 和 'H' 之间:

示例语句:

SELECT * FROM product  
WHERE english_name BETWEEN 'A' AND 'H'  
ORDER BY english_name;

查询结果:

idproduct_nameenglish_namepricecategory_idcreated_time
1香蕉Banana102023/10/22 11:44
2苹果Apple152023/10/22 11:44
5鸡蛋Eggs32023/10/22 11:45
6鸭蛋Duck's egg42023/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;

查询结果:

idproduct_nameenglish_namepricecategory_idcreated_time
3桃子Peach92023/10/6 11:44
4梨子Pear82023/10/22 11:45
7猪肉Pork122023/10/22 11:45
8花生油Peanut oil202023/10/10 11:46
9面条Noodle22023/10/3 11:46
10笔记本Notebook152023/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';

查询结果:

idproduct_nameenglish_namepricecategory_idcreated_time
3桃子Peach92023/10/6 11:44
9面条Noodle22023/10/3 11:46

请注意,在不同的数据库中,BETWEEN 操作符会产生不同的结果!

  • 在一些数据库中,BETWEEN 选取介于两个值之间但不包括两个测试值的字段。
  • 在一些数据库中,BETWEEN 选取介于两个值之间且包括两个测试值的字段。
  • 在一些数据库中,BETWEEN 选取介于两个值之间且包括第一个测试值但不包括最后一个测试值的字段。

因此,请检查您的数据库是如何处理 BETWEEN 操作符!

腾讯云推出云产品限时特惠抢购活动:2C2G云服务器7.9元/月起
本文链接:https://www.jhelp.net/p/0zMpCok1j4HVRPPQ (转载请保留)。
关注下面的标签,发现更多相似文章