<p id="rrtt5"></p><ruby id="rrtt5"></ruby>

      系統城裝機大師 - 固鎮縣祥瑞電腦科技銷售部宣傳站!

      當前位置:首頁 > 數據庫 > Mysql > 詳細頁面

      MySQL通配符與正則表達式搜過濾數據詳解

      時間:2022-10-02來源:www.1999hs.com作者:電腦系統城

      通配符過濾

      通配符:用來匹配值的一部分特殊字符。

      通配符可以在搜索模式中任意位置使用,并且可以使用多個通配符。

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

      語法(使用LIKE操作符):

      1
      2
      3
      SELECT [column_name]
      FROM [table_name]
      WHERE [column_name] LIKE '[string]';

      通配符 %

      ‘%’ 表示任何字符出現任意次數,例如 LIKE ‘jet%’ 匹配詞jet起頭的值,‘%anvil%’ 匹配任何位置包含文本anvil的值。

      注意

      • 根據MySQL的配置方式,搜索可以是區分大小寫的;
      • ‘%’ 可以匹配0個字符;
      • 值的尾空格會干擾通配符匹配,最好在搜索模式最后附加一個%;
      • ‘%’ 不能匹配NULL。

      通配符 _

      ‘_’ 只匹配單個字符。

      技巧

      • 不要過度使用通配符,因為這會很花時間;
      • 如有必要,使用通配符匹配在搜索的最后;

      正則表達式過濾

      語法(使用REGEXP操作符):

      1
      2
      3
      SELECT [column_name]
      FROM [table_name]
      WHERE [column_name] REGEXP '[string]';

      字符匹配

      基本匹配:‘.’ 表示匹配任意一個字符。

      基本字符匹配舉例

      正則表達式匹配不區分大小寫,使用BINARY關鍵字區分,例如WHERE prod_name REGEXP BINARY ‘JetPack .000’。

      • OR匹配:‘1000|2000’ 表示匹配1000或者2000。
      • 多字符匹配:‘[123]’ 表示匹配 1 或 2 或 3,是 [1|2|3] 的縮寫。

       

      但是 ‘[1|2|3] Ton’ 和 ‘1|2|3 Ton’ 匹配結果并不相同,后者表示匹配 1 或 2 或 3 Ton。

      • 否定字符匹配:‘[^123]’ 表示匹配除這些字符外的任何東西。
      • 匹配范圍:‘[0-9]’ 與 ‘[0123456789]’ 相同。‘[a-z]’ 匹配任意字母字符。
      • 匹配特殊字符:使用轉義字符 ‘\’,例如 ‘\.’ 、’ \|’ 、‘\[’ 、‘\’。

      其他字符

      空白元字符

      元字符 說明
      \\f 換頁
      \\n 換行
      \\r 回車
      \\t 制表
      \\v 縱向制表

      字符類

      說明
      [:alnum:] 任意字母和數字
      [:alpha:] 任意字符(同[a-zA-Z])
      [:blank:] 空格和制表
      [:cntrl:] ASCII控制字符(0-31和127)
      [:digit:] 任意數字
      [:graph:] 與[:print:]相同,但是不包括空格
      [:lower:] 任意小寫字母
      [:print:] 任意可打印字符
      [:punct:] 既不在[:alnum:]也不在[:cntrl:] 中的任意字符
      [:space:] 包括空格在內的任意空白字符
      [:upper:] 任意大寫字符
      [:xdigit:] 任意十六進制數字

      重復元字符

      元字符 說明
      * 0個或多個匹配
      + 1個或多個匹配
      ? 0個或多個匹配
      {n} 指定數目匹配
      {n, } 不少于指定數目的匹配
      {n, m} 匹配數目的范圍(m不超過255)

      定位元字符

      元字符 說明
      ^ 文本的開始
      $ 文本的結尾
      [[:<:]] 詞的開始
      [[:>:]] 詞的結尾

      舉例:

      1
      2
      3
      SELECT prod_name
      FROM products
      WHERE prod_name REGEXP '^[0-9\\.]';

      對比

      如果匹配文本在列值中出現,則LIKE不會匹配,但是REGEXP會匹配。

      LIKE與REGEXP對比

      可以通過用 ^ 開始每個表達式,用 $ 結束每個表達式,使得REGEXP的作用和LIKE一樣。

      正則表達式測試

      1 SELECT 'hello' REGEXP '[0-9]';  //結果返回0

      總結

      到此這篇關于MySQL通配符與正則表達式搜過濾數據的文章就介紹到這了

      分享到:

      相關信息

      • Ubuntu安裝Mysql+啟用遠程連接的完整過程

        建立到服務器的遠程連接 用apt-get安裝mysql 設置root密碼 編輯配置文件監聽遠程連接 允許root賬號使用遠程連接 檢查ubuntu自帶的防火墻狀態 檢查云服務器廠商的防火墻狀態 測試連接...

        2022-06-20

      • MySQL數據庫實驗實現簡單數據庫應用系統設計

        一、實驗目的 二、實驗要求 三、實現內容及步驟 1、學生表:student 2、寢室表:dormitory 3、管理員表:admin 四、實驗總結...

        2022-06-20

      系統教程欄目

      欄目熱門教程

      人氣教程排行

      站長推薦

      熱門系統下載

      天堂资源中文WWW,久久精品女人天堂AV免费观看,无码专区一ⅤA亚洲V天堂,免费观看在线AⅤ天堂视频