在這里簡單回顧1下mysql在過濾數據的時候http://www.vxbq.cn/help/zz/表達式的用法,主要是每一個用法給1個例子,或加1些簡短的說明。
這里要提早說1下,使用http://www.vxbq.cn/help/zz/表達式過濾數據是用 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中的通配符"_"1樣,該語句的意思是查詢處prod_name字段中包括諸如1000,2000,或任意1個字符后邊跟上000的數據
進行OR匹配:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000|2000’;
在這里“|”代表or的意思,也就是“或”的意思,該語句會吧prod_name字段中包括1000或包括2000或兩個都包括的數據查詢出來,or匹配可以給出兩個以上的匹配項例如 1000|2000|3000
匹配幾個字符之1:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[123] Ton’;
[]括起來的部份表示匹配其中1個例如 1 Ton ,2 Ton 這樣
匹配范圍:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[1⑼] Ton’;
如果在上1個例子中[]括起來的部份的字符比較長,而且都是數組,并且數字又是連續的話,可以改成范圍匹配,這樣sql語句會更加簡短1點,固然可以把[1⑼]換成[123456789],如果是字母的話可是使用[a-z]這樣的方式
匹配特殊字符:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘.’;
在mysql中要匹配特殊字符的話需要加上//轉義1下才可以,由于特殊字符在sql語句中有特殊的含義
匹配多個實例:
首先需要介紹幾個匹配字符
* 0個或多個匹配
+ 1個或多個匹配(等于{1,})
? 0個或1個匹配(等于{0,1})
{n} 指定數目的匹配
{n,} 很多于指定數目的匹配
{n,m} 匹配數目的范圍(m不超過255)
SELECT prod_name FROM products WHERE prod_name REGEXP ‘([0⑼] sticks?)’;
在該語句中?匹配它前面的任何字符的0次或1次出現
定位符:
^ 匹配文本的開始
$ 匹配文本的結尾
[[:<:]] 詞的開始
[[:>:]] 詞的結尾
SELECT prod_name FROM products WHERE prod_name REGEXP ‘^[0⑼.]’;
該匹配字符串的意思是只有以.和任意數字為開頭的數據被查詢