成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分析比較兩種MySQL字符串匹配模式

數(shù)據(jù)庫 MySQL
MySQL提供標(biāo)準(zhǔn)的SQL模式匹配,以及一種基于象Unix實用程序如vi、grep和sed的擴展正則表達式模式匹配的格式,下文就對這兩種字符串匹配模式進行分析比較,供您參考。

MySQL字符串匹配模式是MySQL中的重要知識,下面就為您詳細(xì)分析兩種MySQL字符串匹配模式,希望可以讓您對MySQL字符串匹配模式有更深的了解。

MySQL提供標(biāo)準(zhǔn)的SQL模式匹配,以及一種基于象Unix實用程序如vi、grep和sed的擴展正則表達式模式匹配的格式。

標(biāo)準(zhǔn)的SQL模式匹配

SQL的模式匹配允許你使用“_”匹配任何單個字符,而“%”匹配任意數(shù)目字符(包括零個字符)。在 MySQL中,SQL的模式缺省是忽略大小寫的。下面顯示一些例子。注意在你使用SQL模式時,你不能使用=或!=;而使用LIKE或NOT LIKE比較操作符。

例如,在表pet中,為了找出以“b”開頭的名字:

mysql> SELECT * FROM pet WHERE name LIKE "b%";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+

為了找出以“fy”結(jié)尾的名字:

mysql> SELECT * FROM pet WHERE name LIKE "%fy";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

為了找出包含一個“w”的名字:

mysql> SELECT * FROM pet WHERE name LIKE "%w%";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+

為了找出包含正好5個字符的名字,使用“_”模式字符:

mysql> SELECT * FROM pet WHERE name LIKE "_____";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

MySQL提供標(biāo)準(zhǔn)的SQL模式匹配,以及一種基于象Unix實用程序如vi、grep和sed的擴展正則表達式模式匹配的格式。

擴展正則表達式模式匹配

由MySQL提供的模式匹配的其他類型是使用擴展正則表達式。當(dāng)你對這類模式進行匹配測試時,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它們是同義詞)。

擴展正則表達式的一些字符是:

“.”匹配任何單個的字符。

一個字符類“[...]”匹配在方括號內(nèi)的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。為了命名字符的一個范圍,使用一個“-”。

“[a-z]”匹配任何小寫字母,而“[0-9]”匹配任何數(shù)字。

“ * ”匹配零個或多個在它前面的東西。例如,“x*”匹配任何數(shù)量的“x”字符,“[0-9]*”匹配的任何數(shù)量的數(shù)字,而“.*”匹配任何數(shù)量的任何東西。

正則表達式是區(qū)分大小寫的,但是如果你希望,你能使用一個字符類匹配兩種寫法。例如,“[aA]”匹配小寫或大寫的“a”而“[a-zA-Z]”匹配兩種寫法的任何字母。

如果它出現(xiàn)在被測試值的任何地方,模式就匹配(只要他們匹配整個值,SQL模式匹配)。

為了定位一個模式以便它必須匹配被測試值的開始或結(jié)尾,在模式開始處使用“^”或在模式的結(jié)尾用“$”。

為了說明擴展正則表達式如何工作,上面所示的LIKE查詢在下面使用REGEXP重寫:

為了找出以“b”開頭的名字,使用“^”匹配名字的開始并且“[bB]”匹配小寫或大寫的“b”:


mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+

為了找出以“fy”結(jié)尾的名字,使用“$”匹配名字的結(jié)尾:


mysql> SELECT * FROM pet WHERE name REGEXP "fy___FCKpd___5quot;;
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

為了找出包含一個“w”的名字,使用“[wW]”匹配小寫或大寫的“w”:

mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+

既然如果一個正規(guī)表達式出現(xiàn)在值的任何地方,其模式匹配了,就不必再先前的查詢中在模式的兩方面放置一個通配符以使得它匹配整個值,

就像如果你使用了一個SQL模式那樣。

為了找出包含正好5個字符的名字,使用“^”和“$”匹配名字的開始和結(jié)尾,和5個“.”實例在兩者之間:

mysql> SELECT * FROM pet WHERE name REGEXP "^.....___FCKpd___7quot;;
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

你也可以使用“{n}”“重復(fù)n次”操作符重寫先前的查詢:

mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}___FCKpd___8quot;;
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

總結(jié)

本介紹了有關(guān)字符串模式匹配的有關(guān)知識。標(biāo)準(zhǔn)的SQL模式匹配是SQL語言的標(biāo)準(zhǔn),可以被其它關(guān)系數(shù)據(jù)庫系統(tǒng)接受。擴展正規(guī)表達式模式匹配是根據(jù)Unix系統(tǒng)的標(biāo)準(zhǔn)開發(fā)了,一般只可使用在MySQL上,但是其功能要比標(biāo)準(zhǔn)的SQL模式匹配更強。

 

 

 

【編輯推薦】

NULL與MySQL空字符串的區(qū)別

深入研究MySQL結(jié)果字符串

MySQL截取字符串函數(shù)方法

MySQL分割字符串的實現(xiàn)

MySQL replace函數(shù)替換字符串

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-09-06 17:26:54

SQL函數(shù)

2023-04-11 08:54:57

字符串匹配算法

2011-03-15 15:20:46

2010-07-14 16:28:58

配線架

2009-02-24 15:39:27

字符串比較函數(shù)函數(shù)

2012-10-16 09:40:38

洗牌算法

2024-06-06 08:32:52

.NET框架代碼

2010-11-22 13:45:43

MySQL表存儲結(jié)構(gòu)

2009-06-29 18:11:40

JSP設(shè)計模式

2010-10-11 10:31:51

MySQL分區(qū)

2010-11-26 10:22:28

MySQL字符串比較

2009-10-20 13:59:59

網(wǎng)絡(luò)綜合布線系統(tǒng)

2011-02-23 12:49:31

KonquerorEmbedded

2022-02-21 08:18:38

option編程模式

2010-08-26 15:15:18

DB2備份

2009-12-25 11:30:44

2013-05-06 10:54:08

字符串字符串匹配KMP算法

2023-12-15 10:27:01

暴力匹配算法Python字符串

2009-08-07 14:46:59

C#匹配字符串

2021-03-08 08:23:24

Java字符串截取
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 人人干人人爽 | 国产精品视频一二三区 | 天堂一区 | 日韩在线免费 | 欧美888 | 日韩成人在线观看 | 99久久久国产精品 | 日本不卡一区二区三区在线观看 | 亚洲一区二区三区免费在线观看 | 夜夜夜夜夜夜曰天天天 | 黄色综合 | 日韩中文字幕 | 日韩电影中文字幕 | 日韩av一区二区在线观看 | 一二区成人影院电影网 | 国产精品综合一区二区 | 亚洲国产精品99久久久久久久久 | 九色一区| 一级大片 | 丝袜一区二区三区 | 精品区一区二区 | www97影院 | a级黄色片在线观看 | 亚洲欧美综合精品另类天天更新 | 国产美女精品视频免费观看 | 日韩在线免费视频 | 6996成人影院网在线播放 | 四虎永久免费地址 | 欧美日韩视频在线 | 91精品国产高清久久久久久久久 | 国产精品1区2区3区 国产在线观看一区 | 毛片a级毛片免费播放100 | 在线一区二区三区 | 在线观看av网站永久 | 狠狠做深爱婷婷综合一区 | 欧美性网 | 久久久久久精 | 国产区精品| а天堂中文最新一区二区三区 | 91精品国产综合久久精品 | 免费黄色在线观看 |