MySQL中的BETWEEN...AND的使用情況
MySQL中BETWEEN...AND的使用
注意:
這個(gè)語(yǔ)法是包后不包前的,也就是說,如果值等于and關(guān)鍵后面的值,這條記錄也是合格的。
但是值等于and前面的值,這條記錄是不合格的。
用法一
SELECT *?FROM 表 WHERE 字段 BETWEEN 值1 AND 值2
例如:
SELECT * FROM employee WHERE age BETWEEN 18 AND 24
其實(shí)這種寫法相當(dāng)于
SELECT * FROM employee WHERE age >?18 AND age <= 24
這應(yīng)該很好理解!在結(jié)合mybatis時(shí),只要傳入值1和值2就可以進(jìn)行查詢控制了
用法二
SELECT * FROM 表 WHERE 值 BETWEEN 字段1 AND 字段2
例如:
SELECT * FROM appoint_consumable WHERE 111 BETWEEN C_APPOINT_ID AND C_CONSUMABLE_ID
這種寫法可能有點(diǎn)難理解,并且有兩個(gè)要求就是,
- 1、字段1和字段2的數(shù)據(jù)類型必須相同
- 2、字段1不能大于字段2
此種寫法可以用于查詢當(dāng)前時(shí)間(或者某一時(shí)間段)是否在某活動(dòng)或者某會(huì)議的開始和結(jié)束之間。
結(jié)合mybatis時(shí),只需要控制查詢值得傳入就能控制查詢了
MySQL的BETWEEN AND范圍查詢問題
時(shí)間范圍
(當(dāng)數(shù)據(jù)庫(kù)字段中存儲(chǔ)的是yyyy-MM-dd格式,即date類型;用between and查詢參數(shù)yyyy-MM-dd格式時(shí),包含頭尾,相當(dāng)于x>=y && x<=z.
當(dāng)是yyyy-MM-dd HH:mm:ss格式,即datetime類型;用between and查詢參數(shù)yyyy-MM-dd HH:mm:ss格式時(shí),包含頭尾,x>=y && x<=z。參數(shù)yyyy-MM-dd格式時(shí),只包含頭,相當(dāng)于x>=y && x<z。)
查詢參數(shù)格式與數(shù)據(jù)庫(kù)類型相對(duì)應(yīng)時(shí),between and包含頭尾,否則依情況
示例:
datetime類型,參數(shù)帶時(shí)分秒(yyyy-MM-dd HH:mm:ss)
SELECT e.create_time data FROM sys_enforce_event e WHERE
e.create_time BETWEEN '2019-03-22 09:39:33' AND '2019-03-25 15:17:51' 查詢結(jié)果如下圖:

結(jié)論:
若datetime類型時(shí),查詢參數(shù)帶時(shí)分秒,BETWEEN AND相當(dāng)于 x >= y && x<=z。即包含頭尾。
datetime類型,參數(shù)不帶時(shí)分秒(yyyy-MM-dd)
SELECT e.create_time data FROM sys_enforce_event e WHERE e.create_time BETWEEN '2019-03-22' AND '2019-03-25'
查詢結(jié)果如下圖:

結(jié)論:
若datetime類型時(shí),查詢參數(shù)不帶時(shí)分秒,BETWEEN AND相當(dāng)于 x >= y && x<z。即只包含頭。
date類型,參數(shù)不帶時(shí)分秒(yyyy-MM-dd)
SELECT l.create_time FROM sys_enforce_black_list l WHERE l.create_time BETWEEN '2019-02-01' AND '2019-03-02'
查詢結(jié)果如下圖:

結(jié)論:
若date類型時(shí),查詢參數(shù)不帶時(shí)分秒,BETWEEN AND相當(dāng)于 x >= y && x<=z。 即包含頭尾。
數(shù)字范圍
包含頭尾,相當(dāng)于:x>=y && x<=z
SELECT l.release_state FROM sys_enforce_black_list l WHERE l.release_state BETWEEN 1 AND 4
如圖所示:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解mysql?bit/json/enum/set?的數(shù)據(jù)存儲(chǔ)
這篇文章主要介紹了mysql?bit/json/enum/set?的數(shù)據(jù)存儲(chǔ),探究的主要內(nèi)容為 int 類類型的存儲(chǔ), 浮點(diǎn)類類型的存儲(chǔ), char 類類型的存儲(chǔ), blob 類類型的存儲(chǔ), enum/json/set/bit 類類型的存儲(chǔ),需要的朋友可以參考下2023-09-09
MySQL8新特性之降序索引底層實(shí)現(xiàn)詳解
這篇文章主要介紹了MySQL8新特性之降序索引底層實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
MySQL學(xué)習(xí)第一天 第一次接觸MySQL
這篇文章是學(xué)習(xí)MySQL的第一篇文章,開啟了探究MySQL的奇妙旅程,內(nèi)容主要是對(duì)MySQL的基礎(chǔ)知識(shí)進(jìn)行學(xué)習(xí),了解,感興趣的小伙伴們可以參考一下2016-05-05
navicat連接mysql報(bào)錯(cuò)1251的解決方法
這篇文章主要為大家詳細(xì)介紹了navicat連接mysql報(bào)錯(cuò)1251的解決方法,文中解決方法介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
mysql中replace into與insert into區(qū)別
本文主要介紹了mysql中replace into與insert into區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01

