程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysqlsql語句回顧2--正則表達式

Mysqlsql語句回顧2--正則表達式

編輯:MySQL綜合教程

Mysqlsql語句回顧2--正則表達式


在這裡簡單回顧一下mysql在過濾數據的時候正則表達式的用法,主要是每個用法給一個例子,或者加一些簡短的說明。

這裡要提前說一下,使用正則表達式過濾數據是用 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\\.]’;

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved