MySQL BETWEEN 语法

BETWEEN 运算符用于 WHERE 表达式中,选取介于两个值之间的数据范围。BETWEEN 同 AND 一起搭配使用,语法如下:

WHERE column BETWEEN value1 ANDvalue2WHERE column NOT BETWEEN value1 AND value2

通常 value1 应该小于 value2。当 BETWEEN 前面加上 NOT 运算符时,表示与 BETWEEN 相反的意思,即选取这个范围之外的值。

BETWEEN 实例

选取 uid 在 2 到 5 之间的用户数据:

SELECT * FROM user WHERE uid BETWEEN 2 AND 5

返回查询结果如下:

uidusernamepasswordemailregdate

2

小明

a193686a53e4de85ee3f2ff0576adf01

xiao@163.com

1278063917

3

Jack

0193686a35e4de85ee3f2ff0567adf490

jack@gmail.com

1278061380

4

小王

e10adc3949ba59abbe56e057f20f883e

12345@163.com

1289632955

5

5idev

a193686a53e4de85ee3f2ff0576adf01

5idev@5idev.com

1291107029

除了数值类型外,BETWEEN 也支持字符串范围,如下选择出所有 username 介于 a 至 j 之间的用户(并包括单字母k/K):

SELECT * FROM user WHERE username BETWEEN 'a' AND 'k'

字符范围也支持汉字,但通常来说没什么意义。

MySQL BETWEEN 边界

虽然几乎所有的数据库都支持 BETWEEN ... AND 运算符,但不同的数据库对 BETWEEN ... AND 处理方式是有差异的。在 MySQL 中,BETWEEN 包含了 value1 和 value2 边界值,如上面选取 uid 在 2 到 5 之间的用户数据例子。

而有的数据库则不包含 value1 和 value2 边界值(类似于 > and = and

MySQL BETWEEN 时间日期

BETWEEN AND 常用于检索时间或日期段内的内容,下面是一些常见的 BETWEEN 时间日期例子:

// int 时间戳格式,查询 2008-08-08 20:00:00 到 2009-01-01零点之前的数据SELECT * FROM table WHERE column_time BETWEEN 1218196800 AND 1230739199

// DATE 格式,查询 2008-08-08 到 2009-01-01零点之前的数据SELECT * FROM table WHERE column_time BETWEEN '2008-08-08' AND '2009-01-01'

// DATETIME 格式,查询 2008-08-08 20:00:00 到 2009-01-01零点之前的数据SELECT * FROM table WHERE column_time BETWEEN '2008-08-08 20:00:00' AND '2008-12-31 23:59:59'

但对于查询到当前时间的数据,建议使用 >= 运算符:

// DATETIME 格式,查询 2008-08-08 20:00:00到当前时刻的数据SELECT * FROM table WHERE column_time >= '2008-08-08 20:00:00'

可见,同样的需求,不同的字段类型,写法可能就不一样。从效率上来讲,int时间戳格式效率最优。

以上 BETWEEN 的各个例子,虽然都是SELECT查询,但 BETWEEN 也可以用于UPDATE、DELETE等适用 WHERE 表达式的 SQL 中。

MySQL BETWEEN 数据比较

BETWEEN 还具有数据比较功能,语法如下:

expr BETWEEN min AND max

当 expr 表达式的值大于或等于 min 且小于或等于 max 时, BETWEEN 的返回值为 1 ,否则返回 0 。利用这个功能,可以判断一个表达式或值否则在某个区间:

// 返回 0

SELECT 1 BETWEEN 2 AND 3

// 返回 1

SELECT 'b' BETWEEN 'a' AND 'c'

//判断日期范围SELECT 20080808 BETWEEN 20080101 AND 20090101

BETWEEN 与 =、> 等运算符在某些情况下有着类似的功能,但 BETWEEN 运算级别更高且效率上更甚一筹。当然由于 BETWEEN 存在边界值的问题而不够灵活,因此不同的情况,采用何种运算符,需要具体对待。

mysql between详解_(转载)MySQL BETWEEN 用法相关推荐

  1. mysql连接数详解_查看mysql当前连接数的方法详解

    1.查看当前所有连接的详细资料: ./mysqladmin -uadmin -p -h10.140.1.1 processlist2.只查看当前连接数(Threads就是连接数.): ./mysqla ...

  2. mysql explain详解_数据库mysql(1)——B+TREE索引原理

    一.B+Tree索引详解 1.什么是索引? 索引:加速查询的数据结构. 2.索引常见数据结构: #1.顺序查找: 最基本的查询算法-复杂度O(n),大数据量此算法效率糟糕. #2.二叉树查找(bina ...

  3. mysql sleep详解_关于MySQL的SLEEP(N)函数

    都知道通过在MySQL中执行select sleep(N)可以让此语句运行N秒钟: mysql> select sleep(1); +----------+ | sleep(1) | +---- ...

  4. mysql profiling详解_使用mysql profiling功能剖析单条查询

    5.1版本开始引入show profile剖析单条语句功能,支持show profiles和show profile语句,参数have_profiling;控制是否开启: 查看是否支持这个功能(查询为 ...

  5. mysql 日期详解_在MySQL中解析日期

    这是DATE_FORMAT()和STR_TO_DATE()中使用的%%格式的表格. -----examples-for------ 1999-12-31   2000-01-02 23:59:58.9 ...

  6. mysql innodb 设置详解_【mysql】mysql innodb 配置详解

    MySQLinnodb 配置详解 innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响.默认的设置只有8M,所以默认的数据库设置下面InnoD ...

  7. mysql查询语句详解_基于mysql查询语句的使用详解

    1> 查询数据表除了前三条以外的数据. 起初我想到的是这条语句 SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ...

  8. mysql分区表详解_详解MySQL分区表

    前言: 分区是一种表的设计模式,通俗地讲表分区是将一大表,根据条件分割成若干个小表.但是对于应用程序来讲,分区的表和没有分区的表是一样的.换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理 ...

  9. mysql revoke详解_【转】MySQL GRANT REVOKE用法

    MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器 授权->确定用户是否拥有足够的权限执行查询请求等. 如果认证不成功的话,哪么授权肯定是无法进行的. revo ...

  10. MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken

    前言 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时数据库集群就很好的解决了这个问题了.采用MySQL分布式集群,能够搭建一个高并发.负载均衡的集群服务器.在 ...

最新文章

  1. 赢了!赢了!赢了!反抗违法裁员,小米以绩效低为由辞退员工败诉!这里单独给大家一些应对参考!...
  2. 拒绝扎堆!带你打卡这家网红动物园
  3. tomcat在eclipse的配置
  4. 软件调试学习笔记(一)—— 调试对象
  5. HBase Java API 创建表时一直卡住
  6. JSESSIONID的简单说明
  7. 深度学习stride_深度学习圣经“花书”各章摘要与笔记整理
  8. CodeForces 1213F (强联通分量分解+拓扑排序)
  9. 绝对定位的div图片居中自适应
  10. css 小知识点:inline/inline-block/line-height
  11. html表头跟随滚动,JS实现table表格固定表头且表头随横向滚动而滚动_心善_前端开发者...
  12. C++11 之for 新解
  13. 单片机c语言曲普两只蝴蝶,51曲谱网_51单片机简谱编码
  14. 数论入门(python)
  15. 使用浏览器检查工具下载网页视频
  16. ArcGIS 矢量数据拓扑编辑
  17. linuxci‘pang磁盘管理的实验报告
  18. Java学习005 #Java编程进行时01#
  19. 手机PDF如何转成PPT?操作方法如何?
  20. TCAM CAM 说明 原理 结构 Verilog 硬件实现

热门文章

  1. Java中针对Timestamp数据类型操作
  2. ParserError Expected identifier got LParen
  3. 如何安装开源 RPA 工具 Robocorp
  4. 求黄金分割数的小数点后100位(蓝桥杯竞赛题)
  5. 屏幕光标控制(汇编)
  6. Windows系统下,Ubuntu安装至移动硬盘(简单分析与详细安装教程)
  7. MySQL中关于emoji表情的存储(微信登录出现登录失败【由于微信昵称字符问题】)
  8. 想要打印数码照片?“Pixelmator Pro”教你如何自行裁剪出清晰生动的照片!
  9. Array.from() 五个超好用的用途
  10. TcaplusDB君 · 行业新闻汇编(8月9日)