Mysql sql語句回顧2 --Regex

來源:互聯網
上載者:User

標籤:Regex   sql   mysql   

在這裡簡單回顧一下mysql在過濾資料的時候Regex的用法,主要是每個用法給一個例子,或者加一些簡短的說明。

這裡要提前說一下,使用Regex過濾資料是用 REGEXP關鍵字


基底字元匹配:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000’;

該查詢語句的意思是prod_name欄位中包含1000的資料,只要值中的任何部位包含1000都可以

SELECT prod_name FROM products WHERE prod_name REGEXP ‘.000’;

"."代表的是單個字元的萬用字元,相當於任何單個字元,類似LIKE中的萬用字元"_"一樣,該語句的意思是查詢處prod_name欄位中包含諸如1000,2000,或者任意一個字元後邊跟上000的資料


進行OR匹配:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000|2000’;

在這裡“|”代表or的意思,也就是“或”的意思,該語句會吧prod_name欄位中包含1000或者包含2000或者兩個都包含的資料查詢出來,or匹配可以給出兩個以上的匹配項例如 1000|2000|3000


匹配幾個字元之一:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘[123] Ton’;

[]括起來的部分表示匹配其中一個例如 1 Ton ,2 Ton 這樣


匹配範圍:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘[1-9] Ton’;

如果在上一個例子中[]括起來的部分的字元比較長,而且都是數組,並且數字又是連續的話,可以改成範圍匹配,這樣sql語句會更加簡短一點,當然可以把[1-9]換成[123456789],如果是字母的話可是使用[a-z]這樣的方式


匹配特殊字元:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\.’;

在mysql中要匹配特殊字元的話需要加上//轉義一下才可以,因為特殊字元在sql語句中有特殊的含義


匹配多個執行個體:

首先需要介紹幾個匹配字元

* 0個或者多個匹配

+ 一個或者多個匹配(等於{1,})

? 0個或者一個匹配(等於{0,1})

{n} 指定數目的匹配

{n,} 不少於指定數目的匹配

{n,m} 匹配數目的範圍(m不超過255)

SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\([0-9] sticks?\\)’;

在該語句中?匹配它前面的任何字元的0次或者一次出現


定位器:

^ 匹配文本的開始

$ 匹配文本的結尾

[[:<:]] 詞的開始

[[:>:]] 詞的結尾

SELECT prod_name FROM products WHERE prod_name REGEXP ‘^[0-9\\.]’;

該匹配字串的意思是只有以.和任一數字為開頭的資料被查詢

Mysql sql語句回顧2 --Regex

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.