元字符 | 行為 |
---|---|
^ | 匹配搜索字符串開頭處的位置 |
$ | 匹配搜索字符串末尾的位置 |
. | 匹配任何單個(gè)字符 |
[…] | 匹配方括號(hào)內(nèi)的任何字符 |
[^…] | 匹配方括號(hào)內(nèi)未指定的任何字符 |
匹配p1或p2模式 | |
* | 匹配前面的字符零次或多次 |
+ | 匹配前一個(gè)字符一次或多次 |
{n} | 匹配前幾個(gè)字符的n個(gè)實(shí)例 |
{m,n} | 從m到n個(gè)前一個(gè)字符的實(shí)例匹配 |
我們?cè)賮聿檎颐Q以a開頭的產(chǎn)品,我們?cè)诿Q開頭使用“^”進(jìn)行匹配,如下查詢語句:
SELECT productname FROM products WHERE productname REGEXP '^a';
執(zhí)行上面查詢語句,得到以下結(jié)果:
+--------------------------------+ | productname | +--------------------------------+ | American Airlines: B767-300 | | America West Airlines B757-200 | | ATA: B757-300 | | American Airlines: MD-11S | +--------------------------------+ 4 rows in set
如果要使REGEXP運(yùn)算符以區(qū)分大小寫的方式比較字符串,可以使用BINARY運(yùn)算符將字符串轉(zhuǎn)換為二進(jìn)制字符串。因?yàn)镸ySQL比較二進(jìn)制字節(jié)逐字節(jié)而不是逐字符。 這允許字符串比較區(qū)分大小寫。例如,以下語句只匹配開頭為大寫“C”的產(chǎn)品名稱:
SELECT productname FROM products WHERE productname REGEXP BINARY '^C';
執(zhí)行上面查詢語句,得到以下結(jié)果:
+--------------------------+ | productname | +--------------------------+ | Collectable Wooden Train | | Corsair F4U ( Bird Cage) | +--------------------------+ 2 rows in set
要找到以f結(jié)尾的產(chǎn)品,我們可以使用'$f‘來匹配字符串的末尾:
SELECT productname FROM products WHERE productname REGEXP 'f$';
執(zhí)行上面查詢語句,得到以下結(jié)果:
+------------------+ | productname | +------------------+ | Boeing X-32A JSF | +------------------+ 1 row in set
要查找其名稱包含“ford”的產(chǎn)品,就要使用以下查詢:
SELECT productname FROM products WHERE productname REGEXP 'ford';
執(zhí)行上面查詢語句,得到以下結(jié)果:
+----------------------------------+ | productname | +----------------------------------+ | 1968 Ford Mustang | | 1969 Ford Falcon | | 1940 Ford Pickup Truck | | 1911 Ford Town Car | | 1932 Model A Ford J-Coupe | | 1926 Ford Fire Engine | | 1913 Ford Model T Speedster | | 1934 Ford V8 Coupe | | 1903 Ford Model A | | 1976 Ford Gran Torino | | 1940s Ford truck | | 1957 Ford Thunderbird | | 1912 Ford Model T Delivery Wagon | | 1940 Ford Delivery Sedan | | 1928 Ford Phaeton Deluxe | +----------------------------------+ 15 rows in set
要查找名稱只包含10個(gè)字符的產(chǎn)品,可以使用'^‘和'$‘來匹配產(chǎn)品名稱的開頭和結(jié)尾,并重復(fù){10}次任何字符.,作為以下查詢:
SELECT productname FROM products WHERE productname REGEXP '^.{10}$';
執(zhí)行上面查詢語句,得到以下結(jié)果:
+-------------+ | productname | +-------------+ | HMS Bounty | | Pont Yacht | +-------------+ 2 rows in set
其實(shí)吧,這個(gè)查詢方式是固定的,可變的是你寫的正則,所以具體咋用,就要看各位小伙伴的能力了哦。
好啦,今天就到這里了。
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫計(jì)有所幫助。
標(biāo)簽:陽江 河北 果洛 來賓 鞍山 黃石 煙臺(tái) 赤峰
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql正則表達(dá)式(regexp和rlike)的搜索功能實(shí)例分析》,本文關(guān)鍵詞 mysql,正則,表達(dá)式,regexp,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。