?MySQL中?between and的基本用法?操作方法
BETWEEN AND操作符可以用于數(shù)值、日期
等類型的字段,包括邊界值
。
一、between and語法
MySQL中的BETWEEN AND
操作符用于在兩個值之間選擇數(shù)據(jù),包括邊界值
。其基本語法如下:
[NOT] BETWEEN 取值1 AND 取值2
其中:
- NOT:可選參數(shù),表示指定范圍之外的值。如果字段值不滿足指定范圍內(nèi)的值,則這些記錄被返回。
- 取值1:表示范圍的起始值。
- 取值2:表示范圍的終止值。
使用場景:
between…and的使用一般有兩種情況,一個是數(shù)值范圍
,一個是時間范圍
。
當(dāng)查詢時間范圍時要注意可能會遇到時間精度問題,具體參考下面示例。
二、使用示例
數(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)建時間戳' ); 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ù)值時 between A and B等同于>=A and <=B
當(dāng)between and用于數(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時間范圍查詢
注意:
- 當(dāng)日期字段為date類型時,即時間格式為yyyy-MM-dd, between ‘2024-10-29’ and ‘2024-10-30’ 相當(dāng)于>=‘2024-10-29’ and <=‘2024-10-30’
- 當(dāng)日期字段為datetime、timestamp類型時,即時間格式為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對datetime、timestamp類型查詢時,一定要注意手動拼接時分秒
,否則查詢數(shù)據(jù)可能不符合預(yù)期。
先上一個錯誤示例:對datetime類型查詢不帶時分秒
-- 查詢用戶表中創(chuàng)建時間在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ù)時間是在2024-10-30日范圍內(nèi),但是并沒有被查詢出來。
所以需要注意:當(dāng)between and對datetime、timestamp類型查詢時,一定要注意手動拼接時分秒
,否則查詢數(shù)據(jù)可能不符合預(yù)期。
正確示例
-- 查詢用戶表中創(chuàng)建時間在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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
xtrabackup備份還原MySQL數(shù)據(jù)庫
這篇文章主要為大家詳細(xì)介紹了xtrabackup備份還原MySQL數(shù)據(jù)庫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06MySQL MHA 運(yùn)行狀態(tài)監(jiān)控介紹
這篇文章主要介紹MySQL MHA 運(yùn)行狀態(tài)監(jiān)控,MHA(Master HA)是一款開源的 MySQL 的高可用程序,它為 MySQL 主從復(fù)制架構(gòu)提供了 automating master failover 功能,想具體了解的小伙伴可以和小編一起學(xué)習(xí)下面文章內(nèi)容2021-10-10mysql中使用sql命令將時間戳解析成datetime類型存入
這篇文章主要介紹了mysql中使用sql命令將時間戳解析成datetime類型存入,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11MySQL無法啟動1067錯誤的又一種解決方法(機(jī)房斷電)
今早在對一張table 創(chuàng)建primay key過程中發(fā)生了斷電,當(dāng)電腦再次啟動時候,發(fā)現(xiàn)mysql 服務(wù)無法啟動,使用 net start 提示 1067錯誤,折騰了2個小時無法解決,后來只能通過手工刪除數(shù)據(jù)文件,日志文件,再啟動服務(wù),然后導(dǎo)入數(shù)據(jù)來完成2013-01-01mysql基礎(chǔ)架構(gòu)教程之查詢語句執(zhí)行的流程詳解
這篇文章主要給大家介紹了關(guān)于mysql基礎(chǔ)架構(gòu)教程之查詢語句執(zhí)行流程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2018-11-11