欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySql官方手冊學(xué)習(xí)筆記2 MySql的模糊查詢和正則表達(dá)式

 更新時間:2012年10月12日 01:00:18   作者:  
MySQL提供標(biāo)準(zhǔn)的SQL模式匹配,以及擴(kuò)展正則表達(dá)式模式匹配的格式

SQL模式匹配允許你使用_匹配任何單個字符,而%匹配任意數(shù)目字符(包括零字符)。在 MySQL中,SQL的模式默認(rèn)是忽略大小寫的。下面給出一些例子。注意使用SQL模式時,不能使用=!=;而應(yīng)使用LIKENOT LIKE比較操作符。

要想找出以b開頭的名字:

 

mysql> SELECT * FROM pet WHERE name LIKE 'b%';
+--------+--------+---------+------+------------+------------+
| name   | owner  | species | sex  | birth      | death      |
+--------+--------+---------+------+------------+------------+
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL       |
| Bowser | Diane  | dog     | m    | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+
 

要想找出以fy結(jié)尾的名字:

 

mysql> SELECT * FROM pet WHERE name LIKE '%fy';
+--------+--------+---------+------+------------+-------+
| name   | owner  | species | sex  | birth      | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat     | f    | 1993-02-04 | NULL  |
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL  |
+--------+--------+---------+------+------------+-------+
 

要想找出包含w的名字:

 

mysql> SELECT * FROM pet WHERE name LIKE '%w%';
+----------+-------+---------+------+------------+------------+
| name     | owner | species | sex  | birth      | death      |
+----------+-------+---------+------+------------+------------+
| Claws    | Gwen  | cat     | m    | 1994-03-17 | NULL       |
| Bowser   | Diane | dog     | m    | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen  | bird    | NULL | 1997-12-09 | NULL       |
+----------+-------+---------+------+------------+------------+
 

要想找出正好包含5個字符的名字,使用_模式字符:

 

mysql> SELECT * FROM pet WHERE name LIKE '_____';
+-------+--------+---------+------+------------+-------+
| name  | owner  | species | sex  | birth      | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
+-------+--------+---------+------+------------+-------+
 

MySQL提供的模式匹配的其它類型是使用擴(kuò)展正則表達(dá)式。當(dāng)你對這類模式進(jìn)行匹配測試時,使用REGEXPNOT REGEXP操作符(RLIKENOT RLIKE,它們是同義詞)。

擴(kuò)展正則表達(dá)式的一些字符是:

·         .'匹配任何單個的字符。

·         字符類[...]匹配在方括號內(nèi)的任何字符。例如,[abc]匹配abc。為了命名字符的范圍,使用一個“-”。[a-z]匹配任何字母,而[0-9]匹配任何數(shù)字。

·          * 匹配零個或多個在它前面的字符。例如,x*匹配任何數(shù)量的x字符,[0-9]*匹配任何數(shù)量的數(shù)字,而.*匹配任何數(shù)量的任何字符。

  • 如果REGEXP模式與被測試值的任何地方匹配,模式就匹配(這不同于LIKE模式匹配,只有與整個值匹配,模式才匹配)
  • 為了定位一個模式以便它必須匹配被測試值的開始或結(jié)尾,在模式開始處使用^在模式的結(jié)尾用$。

為了說明擴(kuò)展正則表達(dá)式如何工作,下面使用REGEXP重寫上面所示的LIKE查詢:

為了找出以b開頭的名字,使用^匹配名字的開始:

 

mysql> SELECT * FROM pet WHERE name REGEXP '^b';
+--------+--------+---------+------+------------+------------+
| name   | owner  | species | sex  | birth      | death      |
+--------+--------+---------+------+------------+------------+
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL       |
| Bowser | Diane  | dog     | m    | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+
 

如果你想強制使REGEXP比較區(qū)分大小寫,使用BINARY關(guān)鍵字使其中一個字符串變?yōu)槎M(jìn)制字符串。該查詢只匹配名稱首字母的小寫‘b'。

 

mysql> SELECT * FROM pet WHERE name REGEXP BINARY '^b';
 

為了找出以fy結(jié)尾的名字,使用$匹配名字的結(jié)尾:

 

mysql> SELECT * FROM pet WHERE name REGEXP 'fy$';
+--------+--------+---------+------+------------+-------+
| name   | owner  | species | sex  | birth      | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat     | f    | 1993-02-04 | NULL  |
| Buffy  | Harold | dog     | f    | 1989-05-13 | NULL  |
+--------+--------+---------+------+------------+-------+
 

為了找出包含一個w的名字,使用以下查詢:

 

mysql> SELECT * FROM pet WHERE name REGEXP 'w';
+----------+-------+---------+------+------------+------------+
| name     | owner | species | sex  | birth      | death      |
+----------+-------+---------+------+------------+------------+
| Claws    | Gwen  | cat     | m    | 1994-03-17 | NULL       |
| Bowser   | Diane | dog     | m    | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen  | bird    | NULL | 1997-12-09 | NULL       |
+----------+-------+---------+------+------------+------------+
 

既然如果一個正則表達(dá)式出現(xiàn)在值的任何地方,其模式匹配了,就不必在先前的查詢中在模式的兩側(cè)放置一個通配符以使得它匹配整個值,就像你使用了一個SQL模式那樣。

為了找出包含正好5個字符的名字,使用^$匹配名字的開始和結(jié)尾,和5.實例在兩者之間:

 

mysql> SELECT * FROM pet WHERE name REGEXP '^.....$';
+-------+--------+---------+------+------------+-------+
| name  | owner  | species | sex  | birth      | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
+-------+--------+---------+------+------------+-------+
 

你也可以使用{n}“重復(fù)n次”操作符重寫前面的查詢:

 

mysql> SELECT * FROM pet WHERE name REGEXP '^.{5}$';
+-------+--------+---------+------+------------+-------+
| name  | owner  | species | sex  | birth      | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
+-------+--------+---------+------+------------+-------+

相關(guān)文章

  • 修改mysql密碼與忘記mysql密碼的處理方法

    修改mysql密碼與忘記mysql密碼的處理方法

    修改mysql密碼與忘記mysql密碼的處理方法,有需要的朋友可以參考下
    2013-02-02
  • MySQL如何生成自增的流水號

    MySQL如何生成自增的流水號

    這篇文章主要介紹了MySQL如何生成自增的流水號問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 解決MySQL8.0時區(qū)的問題步驟

    解決MySQL8.0時區(qū)的問題步驟

    這篇文章主要介紹了解決MySQL8.0時區(qū)的問題步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • MySQL中表索引定義的方法與介紹

    MySQL中表索引定義的方法與介紹

    這篇文章主要給大家介紹了關(guān)于MySQL中表索引定義的方法與介紹,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 配置mysql允許遠(yuǎn)程連接的方法

    配置mysql允許遠(yuǎn)程連接的方法

    默認(rèn)情況下,MySQL只允許本地登錄,如果要開啟遠(yuǎn)程連接,則需要修改/etc/my.cnf文件
    2013-02-02
  • MySQL中使用去重distinct方法的示例詳解

    MySQL中使用去重distinct方法的示例詳解

    這篇文章主要介紹了MySQL中使用去重distinct方法的示例詳解。distinct用來查詢不重復(fù)記錄的條數(shù),distinct表示對后面的所有參數(shù)的拼接取 不重復(fù)的記錄,即查出的參數(shù)拼接每行記錄都是唯一的。地產(chǎn)感興趣的可以了解一下
    2020-07-07
  • mysql中判斷記錄是否存在方法比較

    mysql中判斷記錄是否存在方法比較

    把數(shù)據(jù)寫入到數(shù)據(jù)庫的時,常常會碰到先要檢測要插入的記錄是否存在,然后決定是否要寫入。
    2011-07-07
  • 找回MySQL管理員root密碼的3個妙招

    找回MySQL管理員root密碼的3個妙招

    最近筆者的一臺mysql服務(wù)器忘記了超級管理員root密碼,而mysql修改密碼必須得知道舊密碼的情況下才能進(jìn)行,真的很郁悶,找了很多方法都無?效,最終找到了解決方法,下面把mysql?root密碼找回妙招分享給大家,感興趣的朋友一起看看吧
    2022-11-11
  • MySQL新手入門進(jìn)階語句匯總

    MySQL新手入門進(jìn)階語句匯總

    這篇文章主要給大家介紹了關(guān)于MySQL新手入門進(jìn)階語句的相關(guān)資料,總結(jié)分析了MySQL數(shù)據(jù)庫常用的查詢、條件查詢、排序、連接查詢、子查詢等相關(guān)操作技巧,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • MySQL中使用表別名與字段別名的基本教程

    MySQL中使用表別名與字段別名的基本教程

    這篇文章主要介紹了MySQL中使用表別名與字段別名的基本教程,利用SELECT語句和AS子句進(jìn)行取別名的操作,需要的朋友可以參考下
    2015-12-12

最新評論