最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySql官方手冊學習筆記2 MySql的模糊查詢和正則表達式

 更新時間:2012年10月12日 01:00:18   作者:  
MySQL提供標準的SQL模式匹配,以及擴展正則表達式模式匹配的格式

SQL模式匹配允許你使用_匹配任何單個字符,而%匹配任意數(shù)目字符(包括零字符)。在 MySQL中,SQL的模式默認是忽略大小寫的。下面給出一些例子。注意使用SQL模式時,不能使用=!=;而應使用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結尾的名字:

 

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提供的模式匹配的其它類型是使用擴展正則表達式。當你對這類模式進行匹配測試時,使用REGEXPNOT REGEXP操作符(RLIKENOT RLIKE,它們是同義詞)。

擴展正則表達式的一些字符是:

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

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

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

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

為了說明擴展正則表達式如何工作,下面使用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關鍵字使其中一個字符串變?yōu)槎M制字符串。該查詢只匹配名稱首字母的小寫‘b'。

 

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

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

 

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       |
+----------+-------+---------+------+------------+------------+
 

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

為了找出包含正好5個字符的名字,使用^$匹配名字的開始和結尾,和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}“重復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  |
+-------+--------+---------+------+------------+-------+

相關文章

  • 淺談sql連接查詢的區(qū)別 inner,left,right,full

    淺談sql連接查詢的區(qū)別 inner,left,right,full

    下面小編就為大家?guī)硪黄獪\談sql連接查詢的區(qū)別 inner,left,right,full。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • PureFTP借助MySQL實現(xiàn)用戶身份驗證的操作教程

    PureFTP借助MySQL實現(xiàn)用戶身份驗證的操作教程

    這篇文章主要介紹了PureFTP借助MySQL實現(xiàn)用戶身份驗證的操作教程,就像普通程序中的用戶注冊功能那樣為用戶登陸數(shù)據(jù)信息建立一個數(shù)據(jù)庫來進行驗證,需要的朋友可以參考下
    2015-12-12
  • Mysql臨時變量的具體使用

    Mysql臨時變量的具體使用

    本文主要介紹了Mysql臨時變量的具體使用,臨時變量有分為用戶變量和會話變量,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • MySQL事務的基礎學習以及心得分享

    MySQL事務的基礎學習以及心得分享

    本篇內容是關于MySQL事務的基礎知識學習內容,并把學習中網(wǎng)友的心得做了總結,分享給大家,一起學習參考下吧。
    2017-12-12
  • 基于MySql的擴展功能生成全局ID

    基于MySql的擴展功能生成全局ID

    本文借用 MySQL的擴展功能 REPLACE INTO 來生成全局id,REPLACE INTO和INSERT的功能一樣,但是當使用REPLACE INTO插入新數(shù)據(jù)行時,如果新插入的行的主鍵或唯一鍵(UNIQUE Key)已有的行重復時,已有的行會先被刪除,然后再將新數(shù)據(jù)行插入
    2015-12-12
  • mysql查詢字符串替換語句小結(數(shù)據(jù)庫字符串替換)

    mysql查詢字符串替換語句小結(數(shù)據(jù)庫字符串替換)

    有時候我們需要對mysql的字符串進行替換,我們就可以通過sql語句直接實現(xiàn)了,不過對于大數(shù)據(jù)量的字段不建議使用此方法
    2012-07-07
  • 在MySQL中使用Sphinx實現(xiàn)多線程搜索的方法

    在MySQL中使用Sphinx實現(xiàn)多線程搜索的方法

    這篇文章主要介紹了在MySQL中使用Sphinx實現(xiàn)多線程搜索的方法,修改Sphinx的搜索引擎配置即可,需要的朋友可以參考下
    2015-06-06
  • Mysql Sql 語句練習題(50道)

    Mysql Sql 語句練習題(50道)

    mysql一直作為比較熱門的數(shù)據(jù)庫存儲,搭配php使用簡直是絕配,mysql的sql語句也是很重要的一門課,這里為大家分享一下sql語句,大家可以試試
    2020-12-12
  • Windows10 64位安裝MySQL5.6.35的圖文教程

    Windows10 64位安裝MySQL5.6.35的圖文教程

    這篇文章主要介紹了Windows10 64位安裝MySQL5.6.35的圖文教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • 淺談mysql explain中key_len的計算方法

    淺談mysql explain中key_len的計算方法

    下面小編就為大家?guī)硪黄獪\談mysql explain中key_len的計算方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論

辽阳市| 册亨县| 庆安县| 天祝| 乳山市| 林周县| 桐柏县| 卓资县| 绍兴县| 霍州市| 肥乡县| 土默特左旗| 宜兰市| 马关县| 通城县| 阿尔山市| 庆元县| 平泉县| 理塘县| 静海县| 堆龙德庆县| 平利县| 莲花县| 贵定县| 桐柏县| 太仓市| 勐海县| 宁乡县| 武山县| 兰西县| 娄烦县| 新昌县| 鸡西市| 二手房| 闸北区| 新野县| 浙江省| 平顶山市| 湟中县| 昭觉县| 连平县|