MySQL中BETWEEN AND(范围查询)

这篇具有很好参考价值的文章主要介绍了MySQL中BETWEEN AND(范围查询)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0 写在前面

MySQL 提供了 BETWEEN AND 关键字,用来判断字段的数值是否在指定范围内。

BETWEEN AND 需要两个参数,即范围的起始值和终止值。如果字段值在指定的范围内,则这些记录被返回。如果不在指定范围内,则不会被返回。

最近使用between and 去查询数据,但是在时间的临界点有一些问题,所以记录一下。

1 格式

使用 BETWEEN AND 的基本语法格式如下:

[NOT] BETWEEN 取值1 AND 取值2

其中:

  • NOT:可选参数,表示指定范围之外的值。如果字段值不满足指定范围内的值,则这些记录被返回。
  • 取值1:表示范围的起始值。
  • 取值2:表示范围的终止值。

2 SQL准备

BETWEEN AND 和 NOT BETWEEN AND 关键字在查询指定范围内的记录时很有用。

准备:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for person
-- ----------------------------
DROP TABLE IF EXISTS `person`;
CREATE TABLE `person`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(11) NULL DEFAULT NULL,
  `date_birth` datetime NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of person
-- ----------------------------
INSERT INTO `person` VALUES (1, '小明', '男', 21, '2001-02-02 12:29:30');
INSERT INTO `person` VALUES (2, '小红', '女', 20, '2002-01-01 00:00:00');
INSERT INTO `person` VALUES (3, '张三', '男', 22, '2002-01-01 00:00:01');
INSERT INTO `person` VALUES (4, '李四', '男', 30, '1992-07-10 12:00:00');

SET FOREIGN_KEY_CHECKS = 1;

可以看到这样一个表

mysql between and,数据库,mysql,数据库

3 BETWEEN AND讲解

前面说了格式为:[NOT] BETWEEN 取值1 AND 取值2

正常查询:包括取值1 到 包括取值2

举例:用bewteen查询age:15-21之间的

SQL:

SELECT
	* 
FROM
	`person` 
WHERE
	age BETWEEN 15 
	AND 21

结果:

id	name	sex	age	date_birth
1	小明	男	21	2001-02-02 12:29:30
2	小红	女	20	2002-01-01 00:00:00

4 字段属性为datetime使用BEWTEEN AND

4.1 格式用 ‘年-月-日 时:分:秒’

如果用的是**‘年-月-日 时:分:秒’**查询,则也是左边包括右边也包括

举例:查询 date_birth:2001-01-01 00:00:00—2002-12-31 23:59:59

SQL:

SELECT
	* 
FROM
	`person` 
WHERE
	date_birth BETWEEN '2001-01-01 00:00:00'
	AND '2002-12-31 23:59:59'
id	name	sex	age	date_birth
1	小明	男	21	2001-02-02 12:29:30
2	小红	女	20	2002-01-01 00:00:00
3	张三	男	22	2002-01-01 00:00:01

查询的为:2001和2002年生日

4.2 格式用 ‘年-月-日’

如果用的是**‘年-月-日’**查询,则也是左边包括右边只包括临界点。

临界点的意思就是:只包括AND后那一天的00:00:00这个点,这一天剩下的时间不在查询范围之内。

SQL:

SELECT
	* 
FROM
	`person` 
WHERE
	date_birth BETWEEN '2001-01-01'
	AND '2002-01-01'

结果:

id	name	sex	age	date_birth
1	小明	男	21	2001-02-02 12:29:30
2	小红	女	20	2002-01-01 00:00:00

查询的为:2001年的生日,和2002年01月01日00:00:00的生日

结尾

总的来说 BETWEEN AND 好用,但是要注意的点就是在查询datetime格式的临界点问题。文章来源地址https://www.toymoban.com/news/detail-677161.html

到了这里,关于MySQL中BETWEEN AND(范围查询)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 谷歌的开源供应链安全

    本内容是对Go项目负责人Russ Cox 在 ACM SCORED 活动上 演讲内容 [1] 的摘录与整理。 SCORED 是 Software Supply Chain Offensive Research and Ecosystem Defenses 的简称, SCORED 23 [2] 于2023年11月30日在丹麦哥本哈根及远程参会形式举行。 摘要 💡 谷歌在开源软件供应链安全方面的工作 🔐 介绍供应链安

    2024年02月03日
    浏览(72)
  • http-server使用,启动本地服务器 & 使用serve包本地启动

    http-server使用,启动本地服务器 使用serve包本地启动 直接打开html文件,跨域不渲染图片 1、简介 官网:https://github.com/http-party/http-server http-server是一个简单的零配置命令行 http服务器 。 它足够强大,足以用于生产用途,但它既简单又易于破解,可用于测试,本地开发和学习。

    2024年02月02日
    浏览(57)
  • 使用QFIL升级高通芯片的Android系统

    系统信息 芯片是SC806,系统是Android7.1.2,QFIL工具集是升级Android系统的工具;以下是具体的升级步骤; 一,方式一:使用 QFIL 升级: 1,安装QDART和QPST驱动 一路下一步就好,傻瓜式安装; 2,找到QFIL软件工具 3,进入QFIL工具之后点击Configuration,然后点击FireHose Configuration,再出

    2024年02月05日
    浏览(46)
  • Node.js 安装和配置(完整详细版)

    在Windows上安装和配置Node.js: 下载Node.js安装程序: 前往Node.js官方网站(https://nodejs.org/),在主页上找到\\\"Downloads\\\"(下载)选项。然后选择适用于Windows的\\\"Windows Installer\\\"(Windows安装程序)。 运行安装程序: 下载完成后,双击安装程序(.msi文件),会出现安装向导。按照向导

    2024年02月12日
    浏览(42)
  • uniapp 自定义发行 动态修改 manifest.json

    这边需求是 : 根据不同的打包环境 设置不同的标题以及路径。方便各种调试。防止 每次 手动 每次修改 manifest.json 出错  uniapp 自定义发行: 添加自定义发行之后 Hbuilder 编辑器会自动多 出来 按钮 : 官方文档:概述 | uni-app官网 我这里的配置是这样: package.json 这里主要用于

    2024年02月11日
    浏览(88)
  • 联想拯救者电脑和华为matepad多屏协同解决“驱动版本过低”的问题

    电脑:联想拯救者Y7000,2019款 平板:华为matapad11pro性能版 在下载华为电脑管家的时候踩了很多坑,这里将最后成功的一次发出来 下载华为电脑管家的博客参考非华为电脑安装华为电脑管家以及注意事项这篇博客,采用的是空降猫咪大佬制作的软件下载。 在成功下载后,尝试

    2024年02月07日
    浏览(275)
  • 导出手机微信聊天记录全攻略

    12-5 在我们日常使用微信的过程中,有时候很需要把聊天记录导出到电脑的Excel表格中,或者导出到网页中。 但是有个软件叫【 微信聊天记录挖掘机 】,可以把微信电脑版的聊天记录导出,那在手机微信中的聊天记录怎么办呢? 其实微信本身就带有迁移功能,只需要把手机

    2024年02月04日
    浏览(62)
  • AWS api查询账单

    作为运维要经常关注公司账户消耗情况,账户多了看账单的时间都需要优化,搞个脚本定期推送AWS账单,后续在搞监控,AWS就是api不太好找 代码执行结果 结合企业微信推送到企业微信,每天关注费用消耗

    2024年02月16日
    浏览(29)
  • 小米4手机刷入linux系统

    首先刷入开发版miui系统,参考https://www.miui.com/download.html,刷完系统后需要通过recovery清楚所有数据。 第二步申请小米miui系统解锁,申请解锁参考https://www.miui.com/unlock/index.html,然后如果解锁失败,可以从https://miuiver.com/miunlock/下载不同的版本去尝试解锁。 第三步解锁后,可

    2024年02月11日
    浏览(45)
  • 根据aop实现自定义缓存注解

    自定义注解 切面 使用

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包