MySQL BETWEEN 语法

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

code

  1. WHERE column BETWEEN value1 AND value2
  2. WHERE column NOT BETWEEN value1 AND value2

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

BETWEEN 实例

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

code

  1. SELECT * FROM user WHERE uid BETWEEN 2 AND 5

返回查询结果如下:

uid username password email regdate
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):

code

  1. 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 <),也有数据库包含 value1 而不包含 value2(类似于 >= and <)。所以在使用 BETWEEN ... AND 的时候,请检查你的数据库是如何处理 BETWEEN 边界值的。

MySQL BETWEEN 时间日期

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

code

  1. // int 时间戳格式,查询 2008-08-08 20:00:00 到 2009-01-01 零点之前的数据
  2. SELECT * FROM table WHERE column_time BETWEEN 1218196800 AND 1230739199
  3. // DATE 格式,查询 2008-08-08 到 2009-01-01 零点之前的数据
  4. SELECT * FROM table WHERE column_time BETWEEN '2008-08-08' AND '2009-01-01'
  5. // DATETIME 格式,查询 2008-08-08 20:00:00 到 2009-01-01 零点之前的数据
  6. SELECT * FROM table WHERE column_time BETWEEN '2008-08-08 20:00:00' AND '2008-12-31 23:59:59'

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

code

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

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

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

MySQL BETWEEN 数据比较

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

code

  1. expr BETWEEN min AND max

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

code

  1. // 返回 0
  2. SELECT 1 BETWEEN 2 AND 3
  3. // 返回 1
  4. SELECT 'b' BETWEEN 'a' AND 'c'
  5. // 判断日期范围
  6. SELECT 20080808 BETWEEN 20080101 AND 20090101

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

MySQL BETWEEN 用法相关推荐

  1. mysql存储过程知识点_知识点:Mysql 基本用法之存储过程

    存储过程 一. 介绍 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql 使用存储过程的优点: 用于替代程序写的SQL语句,实现程序与sql ...

  2. mysql高级用法(函数)

    mysql 高级用法 # CONCAT 函数用于将两个字符串连接为一个字符串 SELECT CONCAT(businfo_name,businfo_creditCode) FROM tb_businf ...

  3. Mysql Explain用法pdf

    <Mysql Explain用法pdf> 下载地址:网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731040.html

  4. Mysql limit用法

    MYSQL limit用法 1.Mysql的limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. Sql代 ...

  5. c语言中limit 用法,mysql limit用法及优化详解

    摘要 腾兴网为您分享:mysql limit用法及优化详解,一点万象,喜马拉雅,唯品会,图乐等软件知识,以及盟重土城花屏补丁,宝马车主俱乐部,本地文件搜索,锁定刷新率,发券,微信多开真正版,云门禁,真 ...

  6. 企业级高性能MYSQL的用法---------(二)----------半同步复制 和 全同步复制(组复制)

    企业级高性能MYSQL的用法---------(二)----------半同步复制 和 全同步复制(组复制) 1.基于GDIT的半同步复制 为什么要实现mysqI的复制 1.实现服务器负载均衡 2.通 ...

  7. mysql explain 实例_Mysql实例mysql explain用法学习

    <Mysql实例mysql explain用法学习>要点: 本文介绍了Mysql实例mysql explain用法学习,希望对您有用.如果有疑问,可以联系我们. 导读:本节内容:mysql ...

  8. mysql as用法_MySQL基础学习总结

    数据分析无法离开SQL这一重要的工具,经过十天时间的学习,并完全以MySQL工具对上一节的数据分析岗位数据进行了分析,加强了操作训练,对这一工具使用有了基本的经验.本着以输出为手段检验学习效果,以温故 ...

  9. mysql $的用法_MYSQL limit用法

    1.Mysql的limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. Sql代码   SELECT * F ...

  10. mysql count() 写法,MySQL COUNT()用法及代碼示例

    COUNT()功能: MySQL中的此函數用於查找從所選查詢返回的索引數. 特征: 此函數用於查找從所選查詢返回的索引數. 此功能在數字功能下. 此函數僅接受一個參數,即表達式. 此函數將忽略NULL ...

最新文章

  1. Android之SurfaceView(一)
  2. cosbench 安装
  3. 使用高级程序设计语言实现集合的交并差运算
  4. 北京联合大学计算机学院在哪个校区,北京联合大学各校区联系地址大全
  5. phpcms函数:用*号替换(私密信息)中间数据(如手机号、邮箱)
  6. Softmax回归与冗余性
  7. Jquery.ajax(……)
  8. 7 款神秘的开源中间件!
  9. MySQL innodb下的记录锁,间隙锁,next-key锁
  10. Python UI自动化报错汇总2
  11. Matlab中插值函数汇总及使用说明
  12. 解决ubuntu安装软件的问题。
  13. 怎么设置微信公众号自动回复蓝色字体小程序链接
  14. 搞死SAP系统系列 让系统无法登录
  15. MT4MT5EA编程跟单系统EA
  16. 实现两个分数的加减法编写一个C程序,
  17. android实现棱形效果
  18. 输入压缩空间量是分区量吗_都0202年了,对于电脑磁盘分区?你还不会设置!...
  19. 计算机的教育领域的应用研究,浅析计算机科学技术在现代教育中的应用研究
  20. Guitar Pro8吉他学习辅助软件

热门文章

  1. 关于博客推广站点的心得
  2. HTC VIVE开发教程(五)
  3. Blender图解教程:使用参考视频做动画时如何指定参考视频的起始帧
  4. ext 中 columnModel的renderer
  5. Inter Core i5-8250U(Intel酷睿i5 8250U参数)
  6. Phpcms所有系统变量列表 Phpcms V9 文件目录结构
  7. java获取你的电脑硬件信息
  8. 为什么qq显示无服务器,为什么我QQ空间上的视频突然提示无服务器连接?
  9. 如何在github上添加密钥
  10. CAD转换PDF技巧分享 手把手教你快速转换CAD文件