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

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

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

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

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

標(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實(shí)用程序如vi、grep和sed的擴(kuò)展正則表達(dá)式模式匹配的格式。

擴(kuò)展正則表達(dá)式模式匹配

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

擴(kuò)展正則表達(dá)式的一些字符是:

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

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

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

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

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

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

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

為了說明擴(kuò)展正則表達(dá)式如何工作,上面所示的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ī)表達(dá)式出現(xiàn)在值的任何地方,其模式匹配了,就不必再先前的查詢中在模式的兩方面放置一個通配符以使得它匹配整個值,

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

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

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)接受。擴(kuò)展正規(guī)表達(dá)式模式匹配是根據(jù)Unix系統(tǒng)的標(biāo)準(zhǔn)開發(fā)了,一般只可使用在MySQL上,但是其功能要比標(biāo)準(zhǔn)的SQL模式匹配更強(qiáng)。

 

 

 

【編輯推薦】

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

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

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

MySQL分割字符串的實(shí)現(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

2009-08-07 14:46:59

C#匹配字符串

2013-05-06 10:54:08

字符串字符串匹配KMP算法

2023-12-15 10:27:01

暴力匹配算法Python字符串

2021-03-08 08:23:24

Java字符串截取
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 99这里只有精品视频 | 亚洲精品九九 | 国产91中文 | hdfreexxxx中国妞| 亚洲一区免费在线 | 一区二区视屏 | 一区二区三区中文字幕 | 成人在线小视频 | 天天干干| 男女免费在线观看视频 | av一区二区三区在线观看 | 中文字幕高清免费日韩视频在线 | 欧美成人第一页 | 国产中文字幕亚洲 | 日韩一区二区三区在线观看 | 国产毛片视频 | 成人影视网址 | 国产一区二区三区在线看 | 天天色综 | 三级特黄特色视频 | 毛片免费在线观看 | 欧美精品免费观看二区 | 91精品国产91久久久久久最新 | 在线中文字幕av | 欧美中文字幕 | 亚洲黄色成人网 | 在线 丝袜 欧美 日韩 制服 | 亚洲国产欧美日韩 | 国产亚洲一区二区精品 | 九九九久久国产免费 | 国产精品亚洲视频 | 久久久成人网 | 在线国产一区二区三区 | 国产乱码精品一区二三赶尸艳谈 | 有码一区 | www.亚洲精品 | 高清视频一区二区三区 | 亚洲成人av在线播放 | 亚洲午夜av久久乱码 | 亚洲精品久久久一区二区三区 | 国产精品久久亚洲 |