mysql  通配符(sql 高級過濾)

 

首先簡單介紹一下通配符,用來匹配值的一部分的特殊字符。

搜索模式(search pattern) 由字面值、通配符或兩者組合構成的搜索條件。

通配符是對操作符的一種補充,操作符都確認的,而通配符屬於模糊的。

下面介紹幾個例子:

% 通配符:

SELECT * FROM products
WHERE products.prod_name LIKE 'jet%'


這個%表示前面的任意字符出現任意次數。

此例子使用瞭搜索模式'jet%'。在執行這條子句時,將檢索任意以jet起頭的詞。%告訴MySQL接受jet之後的任意字符,不管它有多少字符。

區分大小寫 根據MySQL的配置方式,搜索可以是區分大小
寫的。如果區分大小寫,'jet%'JetPack 1000將不匹配。

再來看一個%例子的賬戶:

SELECT * FROM products
WHERE products.prod_name LIKE '%anvil%'


上面表示隻要包含anvil字符的prod name 將會被匹配。

同樣,再舉一個例子:

SELECT * FROM products
WHERE products.prod_name LIKE 's%e'


這個表示以s開頭以e結尾的全部的prod name 將會被匹配。

重要的是要註意到,除瞭一個或多個字符外,%還能匹配0個字符。%
代表搜索模式中給定位置的0個、1個或多個字符。

註意尾空格 尾空格可能會幹擾通配符匹配。例如,在保存詞
anvil 時,如果它後面有一個或多個空格,則子句WHERE
prod_name LIKE '%anvil'將不會匹配它們,因為在最後的l
後有多餘的字符。解決這個問題的一個簡單的辦法是在搜索模
式最後附加一個%。

註意:NULL 雖然似乎%通配符可以匹配任何東西,但有一個例
外,即NULL。即使是WHERE prod_name LIKE '%‘也不能匹配
用值NULL作為產品名的行。

另一個有用的通配符是下劃線(_)。下劃線的用途與%一樣,但下劃
線隻匹配單個字符而不是多個字符。

SELECT * FROM products
WHERE products.prod_name LIKE '_ ton anvil'

上面這個_表示的就是任意字符。

%能匹配0個字符不一樣,_總是匹配一個字符,不能多也不能少。

正如所見,MySQL的通配符很有用。但這種功能是有代價的:通配
符搜索的處理一般要比前面討論的其他搜索所花時間更長。這裡給出一
些使用通配符要記住的技巧。

不要過度使用通配符。如果其他操作符能達到相同的目的,應該
使用其他操作符。

在確實需要使用通配符時,除非絕對有必要,否則不要把它們用
在搜索模式的開始處。把通配符置於搜索模式的開始處,搜索起
來是最慢的。

到此這篇關於mysql  通配符(sql 高級過濾)的文章就介紹到這瞭,更多相關mysql  通配符內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: