最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中使用正則表達(dá)式詳情

 更新時(shí)間:2021年11月20日 15:34:40   作者:李子捌  
這牌你文章主要給大家分享的是MySQL中使用正則表達(dá)式詳情,MySQL中支持正則表達(dá)式匹配,在復(fù)雜的過濾條件中,可以考慮使用正則表達(dá)式。使用正則表達(dá)式需要掌握一些正則表達(dá)式的語法和指令,下面來看看文章的詳細(xì)內(nèi)容介紹吧,希望對(duì)你有所幫助

1、簡(jiǎn)介

MySQL中支持正則表達(dá)式匹配,在復(fù)雜的過濾條件中,可以考慮使用正則表達(dá)式。使用正則表達(dá)式需要掌握一些正則表達(dá)式的語法和指令,小捌推薦一個(gè)學(xué)習(xí)地址和在線工具,在學(xué)習(xí)MySQL中使用正則表達(dá)式之前,去了解一下正則表達(dá)式的語法和指令。

正則表達(dá)式學(xué)習(xí)網(wǎng)址:

www.runoob.com/regexp/rege…

正則表達(dá)式在線測(cè)試:

c.runoob.com/front-end/8…

值得注意的是,MySQL支持的正則表達(dá)式僅僅是正則表達(dá)式眾多實(shí)現(xiàn)的一個(gè)子集,在使用正則表達(dá)式之前,建議先測(cè)試一下。 測(cè)試的時(shí)候不一定要先建立表、插入數(shù)據(jù),可以直接使用select省略form子句,以簡(jiǎn)便的方式處理表達(dá)式,

比如如下方式:

mysql> select '我愛你中國' regexp '我愛你';
+------------------------------+
| '我愛你中國' regexp '我愛你' |
+------------------------------+
|                            1 |
+------------------------------+

mysql> select '12306' regexp '[:digit:]';
+----------------------------+
| '12306' regexp '[:digit:]' |
+----------------------------+
|                          1 |
+----------------------------+

2、準(zhǔn)備一張product表

首先準(zhǔn)備一張product表,DDL和表數(shù)據(jù)如下所示,可以直接復(fù)制使用。

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for product
-- ----------------------------
DROP TABLE IF EXISTS `product`;
CREATE TABLE `product`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '產(chǎn)品名稱',
  `price` decimal(10, 2) UNSIGNED NOT NULL COMMENT '產(chǎn)品價(jià)格',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of product
-- ----------------------------
INSERT INTO `product` VALUES (1, 'Apple iPhone 13 (A2634)', 6799.00);
INSERT INTO `product` VALUES (2, 'HUAWEI P50 Pro', 6488.00);
INSERT INTO `product` VALUES (3, 'MIX4', 4999.00);
INSERT INTO `product` VALUES (4, 'OPPO Find X3', 3999.00);
INSERT INTO `product` VALUES (5, 'vivo X70 Pro+', 5999.00);

SET FOREIGN_KEY_CHECKS = 1;

初始數(shù)據(jù)如下所示:

mysql> select * from product;
+----+-------------------------+---------+
| id | product_name            | price   |
+----+-------------------------+---------+
|  1 | Apple iPhone 13 (A2634) | 6799.00 |
|  2 | HUAWEI P50 Pro          | 6488.00 |
|  3 | MIX4                    | 4999.00 |
|  4 | OPPO Find X3            | 3999.00 |
|  5 | vivo X70 Pro+           | 5999.00 |
+----+-------------------------+---------+

2.1 語句順序

正則表達(dá)式的作用是文本匹配,使用一個(gè)正則表達(dá)式與一個(gè)文本內(nèi)容進(jìn)行比較,可以校驗(yàn)文本是否符合正則表達(dá)式闡述的規(guī)則。在MySQL中,正則表達(dá)式用在where子句中,可以對(duì)select查詢的數(shù)據(jù)進(jìn)行過濾。

select * from table_name where regexp '你的正則表達(dá)式' order by cloumn_name;

需求:

查詢產(chǎn)品表中,產(chǎn)品名稱中包含3的產(chǎn)品

語句:

mysql> select * from product where product_name regexp '3';

結(jié)果:

+----+-------------------------+---------+
| id | product_name            | price   |
+----+-------------------------+---------+
|  1 | Apple iPhone 13 (A2634) | 6799.00 |
|  4 | OPPO Find X3            | 3999.00 |
+----+-------------------------+---------+

2.2 如何區(qū)分大小寫

MySQL使用正則表達(dá)式默認(rèn)不區(qū)分大小寫,但是大部分情況下我們需要明確英文的大小寫進(jìn)行匹配,這個(gè)時(shí)候我們可以使用binary關(guān)鍵字。

需求:

查詢產(chǎn)品表中,產(chǎn)品名稱包含huawei的產(chǎn)品

語句:

mysql> select * from product where product_name regexp  'huawei';

結(jié)果:

+----+----------------+---------+
| id | product_name   | price   |
+----+----------------+---------+
|  2 | HUAWEI P50 Pro | 6488.00 |
+----+----------------+---------+

此時(shí)查詢結(jié)果默認(rèn)不區(qū)分大小寫,所以可以直接查詢出來,如果我們希望查詢區(qū)分大小寫,此時(shí)只需要在regexp后面加上binary關(guān)鍵字即可。

語句:

mysql> select * from product where product_name regexp binary 'huawei';

結(jié)果:

Empty set (0.00 sec)

由于product表中并沒有包含小寫huawei的產(chǎn)品,所以返回結(jié)果為Empty set

2.3 正則表達(dá)式與like的區(qū)別

相信有些小伙伴發(fā)現(xiàn)上面實(shí)現(xiàn)的功能,其實(shí)用like也能實(shí)現(xiàn)。很多場(chǎng)景下我們使用like來對(duì)字符串進(jìn)行匹配,但是這些場(chǎng)景往往非常簡(jiǎn)單,而正則表達(dá)式是一個(gè)非常強(qiáng)大的文本檢索過濾工具,它的所能實(shí)現(xiàn)的功能比like操作符強(qiáng)大太多啦??傊甽ike能做的正則表達(dá)式都能做,正則表示能做的like基本上做不了(要么非常棘手)。

比如如下需求,使用正則表達(dá)式可以輕松實(shí)現(xiàn),但是like操作符卻不知道怎么實(shí)現(xiàn)了。

需求:

查詢產(chǎn)品表中,產(chǎn)品名稱中v至少出現(xiàn)一次產(chǎn)品信息

語句:

mysql> select * from product where product_name regexp 'v+';

結(jié)果:

+----+---------------+---------+
| id | product_name  | price   |
+----+---------------+---------+
|  5 | vivo X70 Pro+ | 5999.00 |
+----+---------------+---------+

注意:正則表達(dá)式重復(fù)元字符的匹配都是整個(gè)連續(xù)出現(xiàn)。下面給出這幾個(gè)重復(fù)元字符,感覺有些小伙伴會(huì)理解錯(cuò)。

重復(fù)元字符

元字符 說明
* 0個(gè)或多個(gè)匹配,效果與{0,}一致
+ 1個(gè)或多個(gè)匹配,效果與{1,}一致
? 1個(gè)或0匹配,效果與{0,1}一致
{n} 等于n個(gè)匹配數(shù)目
{n,} 大于等于n個(gè)匹配
{n,m} 大于等于n小于等于m個(gè),m<255

相關(guān)文章

  • MySQL分表和分區(qū)的具體實(shí)現(xiàn)方法

    MySQL分表和分區(qū)的具體實(shí)現(xiàn)方法

    這篇文章主要介紹了MySQL分表和分區(qū)的具體實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • CentOS mysql安裝系統(tǒng)方法

    CentOS mysql安裝系統(tǒng)方法

    CentOS mysql安裝還是很常用的軟件,我就學(xué)習(xí)如何CentOS mysql安裝,在這里拿出來和大家分享一下,希望對(duì)大家有用。
    2010-11-11
  • MySQL事務(wù)的SavePoint簡(jiǎn)介及操作

    MySQL事務(wù)的SavePoint簡(jiǎn)介及操作

    SavePoint是數(shù)據(jù)庫事務(wù)中的一個(gè)概念, 可以將整個(gè)事務(wù)切割為不同的小事務(wù), 可以選擇將狀態(tài)回滾到某個(gè)小事務(wù)發(fā)生時(shí)的樣子,本文給大家分享MySQL事務(wù)的SavePoint重要操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-01-01
  • DataGrip的MySQL數(shù)據(jù)導(dǎo)出和導(dǎo)入操作超詳細(xì)指南

    DataGrip的MySQL數(shù)據(jù)導(dǎo)出和導(dǎo)入操作超詳細(xì)指南

    很多時(shí)候我們會(huì)遇到需要將本機(jī)數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出或者其他數(shù)據(jù)庫數(shù)據(jù)的導(dǎo)入操作,這篇文章主要給大家介紹了關(guān)于DataGrip的MySQL數(shù)據(jù)導(dǎo)出和導(dǎo)入操作超詳細(xì)指南,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • MySQL InnoDB存儲(chǔ)引擎的深入探秘

    MySQL InnoDB存儲(chǔ)引擎的深入探秘

    這篇文章主要給大家介紹了關(guān)于MySQL InnoDB存儲(chǔ)引擎的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • MySQL基礎(chǔ)之MySQL 5.7 新增配置

    MySQL基礎(chǔ)之MySQL 5.7 新增配置

    mysql數(shù)據(jù)庫性能非常高,運(yùn)行速度非???,接下來通過本文給大家介紹MySQL 5.7 新增配置,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-09-09
  • 淺析MySQL中主從延遲問題的原因與解決方法

    淺析MySQL中主從延遲問題的原因與解決方法

    這篇文章主要帶大家從一個(gè)主從延遲問題開始回顧主從復(fù)制原理,并思考主從延遲造成的原因和解決方案,文中的示例代碼講解詳細(xì),感興趣的可以了解下
    2024-02-02
  • Canal實(shí)現(xiàn)MYSQL實(shí)時(shí)數(shù)據(jù)同步的示例代碼

    Canal實(shí)現(xiàn)MYSQL實(shí)時(shí)數(shù)據(jù)同步的示例代碼

    本文詳細(xì)介紹了Canal部署的全過程,包括Canal-Admin、Canal-Server和Canal-Adapter的安裝和配置,涵蓋創(chuàng)建目錄、修改配置文件、容器部署等步驟,適用于MYSQL8.0+環(huán)境,旨在幫助用戶實(shí)現(xiàn)MYSQL實(shí)時(shí)數(shù)據(jù)同步
    2024-11-11
  • php連接不上mysql但mysql命令行操作正常的解決方法

    php連接不上mysql但mysql命令行操作正常的解決方法

    這篇文章主要介紹了php連接不上mysql但mysql命令行操作正常的解決方法,需要的朋友可以參考下
    2014-04-04
  • mysql中格式化數(shù)字詳解

    mysql中格式化數(shù)字詳解

    格式化在我們?nèi)粘i_發(fā)中必不可少,最近在遇到了關(guān)于mysql格式化數(shù)字的需求,所以下面這篇文章主要給大家介紹了關(guān)于mysql中格式化數(shù)字的相關(guān)資料,分別介紹了format函數(shù)和rpad 和 lpad 給定位數(shù),不足補(bǔ)充自定義字符,需要的朋友可以參考下。
    2017-07-07

最新評(píng)論

宁都县| 秭归县| 扎鲁特旗| 女性| 宁海县| 诸城市| 东明县| 石棉县| 社旗县| 岳阳市| 全椒县| 盘锦市| 宝应县| 根河市| 甘泉县| 灵山县| 固镇县| 定兴县| 本溪| 潞西市| 铜川市| 红河县| 保靖县| 兴隆县| 峡江县| 永清县| 汝阳县| 中卫市| 建平县| 胶州市| 汾阳市| 社旗县| 眉山市| 花莲县| 海南省| 拉孜县| 沅江市| 天峨县| 夹江县| 清河县| 安达市|