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

mysql中between的用法及說(shuō)明

 更新時(shí)間:2023年07月28日 09:53:09   作者:有夢(mèng)想的攻城獅  
這篇文章主要介紹了mysql中between的用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

關(guān)于between的使用

between的介紹

日常sql查詢過(guò)程中經(jīng)常要篩選某個(gè)屬性或某個(gè)表達(dá)式結(jié)果的某個(gè)范圍內(nèi)的數(shù)據(jù),這個(gè)時(shí)候我們經(jīng)常通過(guò) > 或者 < 來(lái)進(jìn)行篩選,有的時(shí)候再項(xiàng)目中由于 >< 經(jīng)常會(huì)和起始標(biāo)志符沖突,所以需要進(jìn)行轉(zhuǎn)義,這個(gè)過(guò)程很容易出現(xiàn)一些問(wèn)題,其實(shí)在sql的關(guān)鍵字中,有一個(gè)非常實(shí)用的關(guān)鍵字可以進(jìn)行范圍查詢,這個(gè)關(guān)鍵字就是between,接下來(lái)我們就來(lái)深入的了解一下between的用法。

between的語(yǔ)法

between關(guān)鍵字是一個(gè)邏輯操作符用來(lái)篩選指定屬性或表達(dá)式某一范圍內(nèi)或范圍外的數(shù)據(jù)。

between關(guān)鍵字常用在where關(guān)鍵字后與selectupdatedelete共同使用。

between的使用語(yǔ)法如下:

expr [NOT] BETWEEN begin_expr AND end_expr;

在整個(gè)表達(dá)式中,expr表示的是一個(gè)單一的屬性或者是一個(gè)計(jì)算的表達(dá)式,整個(gè)表達(dá)式中的三個(gè)參數(shù) expr、begin_expr、end_expr 必須是同一種數(shù)據(jù)類(lèi)型。

  • between篩選的是 expr >= begin_expr并且 expr <= end_expr 的數(shù)據(jù),如果不存在則返回的是0;
  • not between篩選的是 expr < begin_expr或者 expr > end_expr 的數(shù)據(jù),如果不存在則返回的是0;
  • 如果 expr 返回的是 NULL,則between 也返回的是null (暫未驗(yàn)證)

between的用法

假如我們有一張數(shù)據(jù)庫(kù)表如下所示

CREATE TABLE `t_income` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '唯一自增id',
  `income_date` varchar(255) NOT NULL COMMENT '收入年月',
  `amount` float NOT NULL COMMENT '收入金額',
  `target_amount` float NOT NULL DEFAULT '0' COMMENT '目標(biāo)收入',
  `create_time` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',
  PRIMARY KEY (`id`)  ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

查詢表中amount>=10并且amount<=50的數(shù)據(jù)

select * from t_income where amount between 10 and 50;

查詢表中amount 和 target_amount 總和 >=100并且<=500的數(shù)據(jù)

select * from t_income where (amount + target_amount) between 100 and 500;

查詢表中create_time 在 2019-01-01 到 2019-09-01 這個(gè)日期范圍內(nèi)的數(shù)據(jù)

select * from t_income where create_time between cast('2019-01-01' as DATE) and cast('2019-09-01' as DATE);

查詢表中amount < 10 或者 amount > 50 的數(shù)據(jù)

select * from t_income where amount not between 10 and 50;

between的總結(jié)

通過(guò)上面的講解,我們現(xiàn)在應(yīng)該已經(jīng)基本的學(xué)會(huì)了between的用法,但是如果在開(kāi)發(fā)中,我們要查詢某個(gè)屬性大于某一個(gè)值 并且小于某個(gè)值的話,我們就只能用 > and <

mysql中的between邊界問(wèn)題

between在不同的SQL中有不同的邊界包含問(wèn)題,查了下mysql官網(wǎng)對(duì)于between的解釋。

在mysql中,between A and B 等同于表達(dá)式 >= A and <= B

官網(wǎng)地址:MySQL官網(wǎng)對(duì)于between的解釋

mysql中,當(dāng)對(duì)日期時(shí)間之類(lèi)的字段進(jìn)行比較時(shí),需要注意幾個(gè)點(diǎn):

1.字段類(lèi)型是date,年月日,類(lèi)似‘2022-08-08’,between ‘2022-01-01’ and ‘2022-02-02’ 的查詢結(jié)果包括’2022-01-01’和’2022-02-02’

2.字段類(lèi)型是datetime,年月日時(shí)分秒,類(lèi)似‘2022-08-08 08:08:08’,若要查詢2022年1月1號(hào)(包含)到2022年2月2號(hào)(包含)的數(shù)據(jù),使用between ‘2022-01-01 00:00:00’ and ‘2022-02-02 23:59:59’,不要使用between ‘2022-01-01’ and ‘2022-02-03’,因?yàn)檫@句相當(dāng)于between ‘2022-01-01 00:00:00’ and ‘2022-02-03 00:00:00’,會(huì)將 '2022-02-03 00:00:00’的數(shù)據(jù)也查詢到

總結(jié)

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

相關(guān)文章

  • mysql中sql查詢性能分析和配置優(yōu)化全面攻略

    mysql中sql查詢性能分析和配置優(yōu)化全面攻略

    處理Mysql性能上的問(wèn)題,可以利用一些Linux常用的命令來(lái)查看Mysql對(duì)服務(wù)器的CUP和I/O使用情況,通過(guò)慢查詢?nèi)罩菊页鲇写齼?yōu)化的sql,通過(guò)show?processlist查看正在執(zhí)行的sql的情況以及及時(shí)kill死鎖的sql,通過(guò)EXPLAIN分析需要優(yōu)化的sql語(yǔ)句,對(duì)Mysql內(nèi)部配置做一些調(diào)整
    2024-03-03
  • MySQL中使用PROFILING來(lái)查看SQL執(zhí)行流程的實(shí)現(xiàn)步驟

    MySQL中使用PROFILING來(lái)查看SQL執(zhí)行流程的實(shí)現(xiàn)步驟

    在MySQL中,PROFILING功能提供了一種方式來(lái)分析SQL語(yǔ)句的執(zhí)行時(shí)間,包括查詢執(zhí)行的各個(gè)階段,如發(fā)送、解析、優(yōu)化、執(zhí)行等,這對(duì)于診斷性能問(wèn)題非常有用,本文給大家介紹了MySQL中使用PROFILING來(lái)查看SQL執(zhí)行流程的實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2024-07-07
  • Mysql主從同步備份策略分享

    Mysql主從同步備份策略分享

    主從服務(wù)器上的MySQL數(shù)據(jù)庫(kù)版本同為5.1.34
    2011-05-05
  • MySQL下使用Inplace和Online方式創(chuàng)建索引的教程

    MySQL下使用Inplace和Online方式創(chuàng)建索引的教程

    這篇文章主要介紹了MySQL下使用Inplace和Online方式創(chuàng)建索引的教程,針對(duì)InnoDB為存儲(chǔ)引擎的情況,需要的朋友可以參考下
    2015-11-11
  • SQLServer 2005 自動(dòng)備份數(shù)據(jù)庫(kù)的方法分享(附圖解教程)

    SQLServer 2005 自動(dòng)備份數(shù)據(jù)庫(kù)的方法分享(附圖解教程)

    SQLServer 2005 自動(dòng)備份數(shù)據(jù)庫(kù)的方法分享(附圖解教程),使用sqlserver2005的朋友可以參考下。
    2011-09-09
  • MySQL數(shù)據(jù)表使用的SQL語(yǔ)句整理

    MySQL數(shù)據(jù)表使用的SQL語(yǔ)句整理

    這篇文章主要介紹了MySQL數(shù)據(jù)表使用的SQL語(yǔ)句整理,文章基于MySQL的相關(guān)資料展開(kāi)舉例說(shuō)明,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 詳解MySQL中concat函數(shù)的用法(連接字符串)

    詳解MySQL中concat函數(shù)的用法(連接字符串)

    本篇文章主要介紹了MySQL中concat函數(shù)的用法(連接字符串),在命令行模式下進(jìn)行測(cè)試。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • CentOS7下二進(jìn)制安裝mysql 5.7.23

    CentOS7下二進(jìn)制安裝mysql 5.7.23

    這篇文章主要為大家詳細(xì)介紹了CentOS7下二進(jìn)制安裝mysql 5.7.23,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解

    MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解

    這篇文章主要介紹了MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解,復(fù)合索引是一種索引,它包含多個(gè)字段,復(fù)合索引能夠使一個(gè)SQL查詢多個(gè)條件時(shí)也能走索引,提高查詢性能,需要的朋友可以參考下
    2023-11-11
  • MySQL虛擬列的使用示例

    MySQL虛擬列的使用示例

    虛擬列是MySQL中的一種特殊列,它不存儲(chǔ)在表中,而是在查詢時(shí)動(dòng)態(tài)計(jì)算生成,虛擬列可以提高查詢效率、減少存儲(chǔ)需求、確保數(shù)據(jù)一致性、簡(jiǎn)化查詢和保護(hù)敏感數(shù)據(jù),感興趣的可以了解一下
    2024-11-11

最新評(píng)論