?MySQL中?between and的基本用法?操作方法
BETWEEN AND操作符可以用于數(shù)值、日期等類型的字段,包括邊界值。
一、between and語(yǔ)法
MySQL中的BETWEEN AND操作符用于在兩個(gè)值之間選擇數(shù)據(jù),包括邊界值。其基本語(yǔ)法如下:
[NOT] BETWEEN 取值1 AND 取值2
其中:
- NOT:可選參數(shù),表示指定范圍之外的值。如果字段值不滿足指定范圍內(nèi)的值,則這些記錄被返回。
- 取值1:表示范圍的起始值。
- 取值2:表示范圍的終止值。
使用場(chǎng)景:
between…and的使用一般有兩種情況,一個(gè)是數(shù)值范圍,一個(gè)是時(shí)間范圍。
當(dāng)查詢時(shí)間范圍時(shí)要注意可能會(huì)遇到時(shí)間精度問(wèn)題,具體參考下面示例。
二、使用示例
數(shù)據(jù)準(zhǔn)備
create table user(
id int NOT NULL auto_increment primary key comment '主鍵id',
`name` varchar(10) NULL comment '姓名',
age int NULL comment '年齡',
salary int NULL comment '工資',
create_time datetime comment '創(chuàng)建時(shí)間戳'
);
insert into user(name,age,salary,create_time) values
('張三',23,100,'2024-10-29 10:01:22'),
('李四',24,200,'2024-10-30 09:44:22'),
('王五',25,300,'2024-10-30 10:01:22'),
('趙六',26,400,'2024-10-31 07:01:23');表數(shù)據(jù)如下

2.1、between and數(shù)值查詢
between…and…是支持?jǐn)?shù)值查詢的,當(dāng)字段類型是數(shù)值時(shí) between A and B等同于>=A and <=B
當(dāng)between and用于數(shù)值查詢時(shí),常用于字段類型為int、decimal等。
-- 查詢用戶表中年齡在24到25之間的用戶 select * from user where age between 24 and 25; 等同于 select * from user where age >= 24 and age <= 25;
查詢結(jié)果如下:

2.2、between and時(shí)間范圍查詢
注意:
- 當(dāng)日期字段為date類型時(shí),即時(shí)間格式為yyyy-MM-dd, between ‘2024-10-29’ and ‘2024-10-30’ 相當(dāng)于>=‘2024-10-29’ and <=‘2024-10-30’
- 當(dāng)日期字段為datetime、timestamp類型時(shí),即時(shí)間格式為yyyy-MM-dd HH:mm:ss,between ‘2024-10-29’ and ‘2024-10-30’ 相當(dāng)于>=‘2024-10-29 00:00:00’ and <=‘2024-10-30 00:00:00’。所以
當(dāng)between and對(duì)datetime、timestamp類型查詢時(shí),一定要注意手動(dòng)拼接時(shí)分秒,否則查詢數(shù)據(jù)可能不符合預(yù)期。
先上一個(gè)錯(cuò)誤示例:對(duì)datetime類型查詢不帶時(shí)分秒
-- 查詢用戶表中創(chuàng)建時(shí)間在2024-10-29到2024-10-30之間的數(shù)據(jù) select * from user where create_time between '2024-10-29' and '2024-10-30'; 等同于 select * from user where create_time >= '2024-10-29 00:00:00' and create_time <= '2024-10-30 00:00:00';
查詢結(jié)果:

從上面示例可以看出,還有兩條數(shù)據(jù)時(shí)間是在2024-10-30日范圍內(nèi),但是并沒(méi)有被查詢出來(lái)。
所以需要注意:當(dāng)between and對(duì)datetime、timestamp類型查詢時(shí),一定要注意手動(dòng)拼接時(shí)分秒,否則查詢數(shù)據(jù)可能不符合預(yù)期。
正確示例
-- 查詢用戶表中創(chuàng)建時(shí)間在2024-10-29到2024-10-30之間的數(shù)據(jù) select * from user where create_time between '2024-10-29 00:00:00' and '2024-10-30 23:59:59'; 等同于 select * from user where create_time >= '2024-10-29 00:00:00' and create_time <= '2024-10-30 23:59:59';
查詢結(jié)果:

2.3、not between and示例
not between and表示指定范圍之外的值。not between A and B相當(dāng)于 < A or >B。
示例:查詢年齡不在24到25之間的用戶
-- 查詢用戶表中年齡不在24到25之間的用戶 select * from user where age not between 24 and 25; 等同于 select * from user where age < 24 or age > 25;
查詢結(jié)果如下:

到此這篇關(guān)于MySQL中between and的基本用法的文章就介紹到這了,更多相關(guān)mysql between and用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
千萬(wàn)級(jí)用戶系統(tǒng)SQL調(diào)優(yōu)實(shí)戰(zhàn)分享
這篇文章主要介紹了千萬(wàn)級(jí)用戶系統(tǒng)SQL調(diào)優(yōu)實(shí)戰(zhàn)分享,用戶日活百萬(wàn)級(jí),注冊(cè)用戶千萬(wàn)級(jí),而且若還沒(méi)有進(jìn)行分庫(kù)分表,則該DB里的用戶表可能就一張,單表上千萬(wàn)的用戶數(shù)據(jù),下面我們就來(lái)學(xué)習(xí)如何讓優(yōu)化,需要的朋友可以參考一下2022-03-03
MySQL高可用解決方案MMM(mysql多主復(fù)制管理器)
MySQL本身沒(méi)有提供replication failover的解決方案,通過(guò)MMM方案能實(shí)現(xiàn)服務(wù)器的故障轉(zhuǎn)移,從而實(shí)現(xiàn)mysql的高可用。MMM不僅能提供浮動(dòng)IP的功能,如果當(dāng)前的主服務(wù)器掛掉后,會(huì)將你后端的從服務(wù)器自動(dòng)轉(zhuǎn)向新的主服務(wù)器進(jìn)行同步復(fù)制,不用手工更改同步配置2017-09-09
Mysql ERROR 1067: Invalid default v
這篇文章主要介紹了Mysql ERROR 1067: Invalid default value for字段問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
提升MySQL查詢效率及查詢速度優(yōu)化的四個(gè)方法詳析
查詢語(yǔ)句的優(yōu)化是提高M(jìn)ySQL查詢速度的重要方法,可以通過(guò)使用JOIN語(yǔ)句、子查詢、優(yōu)化where子句等方式來(lái)減少查詢的時(shí)間,下面這篇文章主要給大家介紹了關(guān)于提升MySQL查詢效率及查詢速度優(yōu)化的四個(gè)方法,需要的朋友可以參考下2023-04-04
MySQL存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的用法解讀
這篇文章主要介紹了MySQL存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-09-09
navicat 連接數(shù)據(jù)庫(kù)隔段時(shí)間后自動(dòng)斷開(kāi)連接的解決方案
這篇文章主要介紹了navicat 連接數(shù)據(jù)庫(kù)隔段時(shí)間后自動(dòng)斷開(kāi)連接的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
MySQL內(nèi)連接和外連接及七種SQL?JOINS的實(shí)現(xiàn)
這篇文章主要介紹了Mysql內(nèi)連接和外連接的區(qū)別以及七種SQL?Joins的實(shí)現(xiàn),相信看完這篇文章你對(duì)SQL內(nèi)外連接的多表查詢就足夠理解了,需要的朋友可以參考下2023-03-03

