首頁  >  文章  >  資料庫  >  mysql中使用通配符進行過濾教程

mysql中使用通配符進行過濾教程

巴扎黑
巴扎黑原創
2017-05-02 18:19:401639瀏覽

什麼是萬用字元?

通配符就是用來匹配值的一部分的特殊字元。

搜尋模式:由字面值、通配符或兩者組合構成的搜尋條件。


1.like運算子:

前面介紹的所有運算子都是針對一直值進行過濾的。不管是匹配還是多個值,測試大於或小於已知值,或檢查某個範圍的值,共同點是過濾中使用的值都是已知的。但是,這種過濾方法並不是任何時候都好用,例如,怎麼搜尋產品名​​稱中包含文字anvil的所有產品?用簡單的比較操作符坑定不行,必須使用萬用字元。利用通配符可建立比較特定資料搜尋模式。在這個例子中,如果你想找出所有名稱包含anvil的產品,可建構一個通配符搜尋模式,找出產品名稱中任何位置出現anvik的產品。

為在搜尋子句中使用通配符,必須使用link運算元。 like指示MySQL,後面接著的搜尋模式利用通配符匹配而不是直接相等匹配進行比較。


2.百分號(%)通配符

最常使用的萬用字元是百分號(%)。在搜尋串中,%表示任何字元出現的任意次數。例如,為了找出所有以詞a開頭的產品,可以使用以下select語句:

select prod_id,prod_name from products where prod_name like 'a%';

此範例使用了搜索模式'a%'。在執行這句話時,講檢索任意以a開頭的字。 %告訴MySQL接受a之後的任意字符,不管它有多少字符。

注意:根據MySQL的配置方式,搜尋可以使區分大小寫的。如果區分大小寫,‘a%’與Apache這個字不相符。

通配符可在搜尋模式中任意位置使用,並且可以使用多個通配符。以下範例使用兩個通配符,它​​們位於模式的兩端:

select prod_id,prod_name from products where prod_name like '%a%';

#程式碼分析:搜尋模式'%a% '表示匹配任何位置包含文字anvil的值,而不論它之前或之後出現什麼字元。

通配符也可以出現在搜尋模式中間。例如下面這個範例:

select prod_namefrom products where prod_name like '%a%';

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

注意:1.為空格可能會幹擾通配符匹配。例如在 '%a%'的a後面有一個或多個空格時,則子句where prod_name like '%a%';將不會匹配它們,因為在a後面有多餘字元。解決這個問題的一個簡單的方法是在搜尋模式最後加一個%。另一個更好的方法是用函數將收尾空格去除。

2.雖然似乎%通配符可以匹配任何東西,但是有一個例外,即NULL。即使where prod_name like ‘%’也不能符合用值NULL作為產品名的行。


3.底線'_'通配符

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

舉例:

select prod_id,prod_name from products where products where prod_name like '_ ton anvil';

#輸出:

mysql中使用通配符進行過濾教程

此where子句中的搜尋模式給出了後面跟有文字的兩個通配符。結果只顯示符合搜尋模式的行:第一行中下環線符合1,第二行中底線符合2.

大家可以再試試用%進行比對回傳的結果,比較一下。

以上是mysql中使用通配符進行過濾教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn