欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL BETWEEN AND踩坑記錄

 更新時間:2023年07月28日 11:02:18   作者:Bryce180  
這篇文章主要介紹了MySQL BETWEEN AND踩坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MySQL BETWEEN AND踩坑

在日常使用MySQL的過程中,我們很習(xí)慣性的會使用“BETWEEN … AND…”來進行條件查詢,篩選對應(yīng)時間、狀態(tài)的數(shù)據(jù)。

但,如果這個日期字段是日期/時間格式,那么坑就來了。

SELECT 
	* # 正式學(xué)習(xí)工作盡量不要直接使用 *,這里是自建的模擬表無所謂
FROM 
	test 
WHERE 
	time BETWEEN '2023-04-01' AND '2023-04-20'
ORDER BY 
	time desc

輸出結(jié)果:

在這里插入圖片描述

但是!

實際上我們的表中是有2023-04-20這一天的數(shù)據(jù)的

SELECT 
	*
FROM 
	test 
WHERE 
	DATE(time) = '2023-04-20'

在這里插入圖片描述

MySQL的BETWEEN ... AND...的取值確實是閉區(qū)間,但是如果日期字段包含時間,即2023-04-20 09:23:35

MySQL會將BETWEEN '2023-04-01' AND '2023-04-20'自動轉(zhuǎn)換為BETWEEN '2023-04-01 00:00:00' AND '2023-04-20 00:00:00'

也就是說,當日期字段帶時間時,最后一天僅會獲取00:00:00這一時間點的數(shù)據(jù),而非我們想象中的最后一天一整天的數(shù)據(jù)!

解決思路

1.使用DATE()

DATE(time) BETWEEN '2023-04-01' AND '2023-04-20'

2.使用小于號,小于最后一天的后一天

time >= '2023-04-01' and time < '2023-04-21'

3.手動補上時間(不建議,麻煩且可能出現(xiàn)更多坑)

time BETWEEN '2023-04-01 00:00:00.000000' AND '2023-04-20 23:59:59.999999'

MySQL之between ...and....小知識點

使用BETWEEN AND關(guān)鍵字檢索數(shù)據(jù)表中指定的數(shù)據(jù)內(nèi)容。

帶BETWEEN AND關(guān)鍵字的查詢

我們已經(jīng)學(xué)會了如何用IN關(guān)鍵字精確查詢數(shù)據(jù)表中的內(nèi)容,但是在很多時候,我們僅僅是想知道在某一范圍內(nèi)有多少符合條件的數(shù)據(jù),這就不得不使用到關(guān)鍵字BETWEEN AND了,它是閉區(qū)間,前后都可以取到。

BETWEEN AND需要兩個參數(shù)支持,一個是范圍的開始值,另一個就是結(jié)束值了。

如果字段值滿足指定的范圍查詢條件,就返回這些滿足條件的數(shù)據(jù)內(nèi)容。

語法規(guī)則為:

SELECT 字段名 FROM 表名 WHERE 字段名 BETWEEN n1 AND n2; ???????

舉個例子假設(shè)我們現(xiàn)在有一張表Mall_products,

內(nèi)容如下:

我們將使用BETWEEN AND關(guān)鍵字檢索出所有國家代碼為1~50的商品的信息。

查詢代碼如下:

SELECT *
FROM Mall_products
WHERE prod_country BETWEEN 1 AND 50;

結(jié)果為:

查詢過程如下:

可以看到,返回結(jié)果包含了國家代碼從1~50之間的字段值。尤其值得注意的是,端點值1也包含在返回結(jié)果中

帶NOT BETWEEN AND關(guān)鍵字的查詢

像上一關(guān)介紹的關(guān)鍵字IN一樣,我們還可以對關(guān)鍵字BETWEEN AND進行取反,表示查詢指定范圍之外的值。

語法規(guī)則為:

SELECT 字段名 FROM 表名 WHERE 字段名 NOT BETWEEN n1 AND n2; ???????

舉個例子我們依然使用表Mall_products。

現(xiàn)在我們想要查詢除了國家代碼為1~50的所有國家的產(chǎn)品內(nèi)容。

查詢代碼如下:

SELECT *
FROM Mall_products
WHERE prod_country NOT BETWEEN 1 AND 50;

結(jié)果為:

由結(jié)果可以看出,返回的結(jié)果只有大于國家代碼50的內(nèi)容。

怎么樣?簡單吧!

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL?分庫分表的項目實踐

    MySQL?分庫分表的項目實踐

    當用戶量級上升,寫請求越來越多,這時需要用到分庫分表,本文就介紹了MySQL?分庫分表的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04
  • MySQL用limit方式實現(xiàn)分頁的實例方法

    MySQL用limit方式實現(xiàn)分頁的實例方法

    在本篇文章中小編給大家整理了一篇關(guān)于MySQL用limit方式實現(xiàn)分頁的實例方法,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-01-01
  • MySQL數(shù)據(jù)庫的約束限制詳解

    MySQL數(shù)據(jù)庫的約束限制詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的約束限制詳解,數(shù)據(jù)庫的約束是對表中數(shù)據(jù)進行的一種限制,為了保證數(shù)據(jù)的正確性、有效性、完整性,下文簡單介紹需要的朋友可以參考一下
    2022-08-08
  • Mysql 遠程連接配置實現(xiàn)的兩種方法

    Mysql 遠程連接配置實現(xiàn)的兩種方法

    這篇文章主要介紹了Mysql 遠程連接配置實現(xiàn)的兩種方法的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • mysql外鍵基本功能與用法詳解

    mysql外鍵基本功能與用法詳解

    這篇文章主要介紹了mysql外鍵基本功能與用法,結(jié)合實例形式詳細分析了mysql外鍵的基本概念、功能、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • Mysql快速插入千萬條數(shù)據(jù)的實戰(zhàn)教程

    Mysql快速插入千萬條數(shù)據(jù)的實戰(zhàn)教程

    這篇文章主要給大家介紹了關(guān)于Mysql快速插入千萬條數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • MySQL定時任務(wù)不能正常執(zhí)行的原因分析及解決方法

    MySQL定時任務(wù)不能正常執(zhí)行的原因分析及解決方法

    大家好,本篇文章主要講的是MySQL定時任務(wù)不能正常執(zhí)行的原因分析及解決方法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • mysql for update是鎖表還是鎖行實例詳解

    mysql for update是鎖表還是鎖行實例詳解

    在并發(fā)一致性控制場景中,我們常常用for update悲觀鎖來進行一致性的保證,但是如果不了解它的機制,就進行使用,很容易出現(xiàn)事故,比如for update進行了鎖表導(dǎo)致其他請求只能等待,從而拖垮系統(tǒng),這篇文章主要介紹了mysql for update是鎖表還是鎖行操作,需要的朋友可以參考下
    2024-03-03
  • MySQL數(shù)據(jù)庫表修復(fù) MyISAM

    MySQL數(shù)據(jù)庫表修復(fù) MyISAM

    這篇文章主要介紹了MySQL數(shù)據(jù)庫表修復(fù) MyISAM ,需要的朋友可以參考下
    2014-06-06
  • Django+mysql配置與簡單操作數(shù)據(jù)庫實例代碼

    Django+mysql配置與簡單操作數(shù)據(jù)庫實例代碼

    這篇文章主要介紹了Django+mysql配置與簡單操作數(shù)據(jù)庫實例,需要的朋友可以參考下
    2017-07-07

最新評論