<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
有時候使用MySQL進行資料庫查詢資料的時候,like查詢存在侷限性,這時候就可以使用MySQL中的正規表示式查詢的方式。
正規表示式是用來匹配文字的特殊的串(字元集合),將一個模式(正規表示式)與一個文字串進行比較。
LIKE匹配整個列(like是模糊查詢),如果被匹配的文字僅在列值中出現,LIKE並不會找到它,相應的行也不會返回(當然,使用萬用字元除外)
REGEXP在列值內進行匹配,如果被匹配的匹配的文字在列值中出現,REGEXP將會找到它,相應的行將被返回,這時一個非常重要的差別(當然,如果適應定位符號^和$,可以實現REGEXP匹配整個列而不是列的子集)
例如:
查詢一個表name列含有chen字串的資料,兩條sql語句如下
select * from stu_info where name like '小白'; select * from stu_info where name regexp '小白';
第一條的查詢結果是name值等於’小白‘的資料,而第二條的查詢結果是name中包含’小白’的資料,也可以用like(模糊查詢+萬用字元)來實現regexp查詢結果。
select column from table where column regexp 'X|Y' order by column; select column from table where column regexp '[XY]test' order by column;
第一種寫法會將|應用於整個串,只要字串中有X或Y的資料,都將被檢索出來
第二種寫法只將[XY]應用於搜尋模式的開頭處
([])集合可以用來定義要匹配的一個或多個字元,比如[0123456789],為了簡化這種型別的集合,可使用(-)來定義一個範圍,即[0-9],[a-z]
則表示式由具有特定含義的特殊字元構成;如果要匹配這些特殊字元,就需要用為前導,這種處理方式就是所謂的跳脫(escaping),正規表示式內具有特殊意義的所有字元都必須以這種方式跳脫;(為了匹配反斜槓{}字元本身,需要使用\)
注意:多數正規表示式實現使用單個反斜槓跳脫特殊字元,以便能夠使用這些字元本身,而MySQL要求兩個反斜槓(MySQL自己解釋一個,正規表示式庫解釋一個)
有時候需要檢索出我們需要的數位、所有字母字元或所有數位字母字元等的匹配,我們可以使用預定義的字元集,稱為字元類。
有時候需要對匹配的數目進行更強的控制,比如:尋找所有的數,不管數中包含多少數位,或尋找一個單詞並尾隨一個s(如果存在)等情況,我們可以利用正規表示式中的重複元字元來完成。
select column from table where column regexp '\([0-9] sticks?\)' order by column;
上面的正規表示式‘([0-9] sticks?)’意為:匹配([0-9]匹配任意數位,這裡指匹配的數值範圍,sticks?匹配stick和sticks{?使s可選,因為?匹配它前面任何字元的0或者1次出現})。
有時候為了匹配特定位置的文字,需要使用定位符,常用定位符列表如下:
找出一個以一個數(包括小數點開始的數)開始的所有數值,簡單搜尋[0-9.]或([[:digit:].])不行,因為它將在文字內任意位置查詢匹配,可以使用^定位符,如下:
select column from table where column regexp '^[0-9\.]' order by column;
使regexp和like起相同作用:like匹配整串二regexp匹配子串,可以利用定位符,用^開始每個表示式,用$結束每個表示式,就可以使regexp和like作用一樣。
查詢admin表中的group欄位,資料格式為:1,2,3;4,5,6;1,87,101
例如查詢101:
select * from xin_admin where `group` REGEXP '[,|;]?101[,|;]?';
一、MySQL中字串的擷取
MySQL中有專門的字串擷取函數:其中常用的有兩種:substring_index(str,delim,count) 和concat
1.substring_index(str,delim,count) 函數的使用較為普遍。
函數括號裡面的依次為:要分隔擷取的字串(如:”aaa_bbb_ccc”)、分隔符(如:“_”)、位置(表示第幾個分隔符處,如:“1”)。
例子:substring_index("aaa_bbb_ccc","_",1) ,返回為 aaa;
substring_index("aaa_bbb_ccc","_",2) ,返回為 aaa_bbb;
substring_index(substring_index("aaa_bbb_ccc","_",-2),"_",1) ,返回為 bbb;
2.concat是連線幾個字串
例子:concat(‘m’,’y’,’s’,’q’,’l’);
返回:mysql
二、依據表中的某個欄位查詢包含有這個字元的所有資料
1.find_in_set:SELECT * FROM user WHERE find_in_set(‘吳’,name);
查詢user表中所有name包含“吳”的資料
2.REGEXP:SELECT * FROM user WHERE name REGEXP ‘(‘吳’|‘劉’)’;
使用正則,查詢包含劉或者吳的資料
到此這篇關於MySQL中正規表示式(REGEXP)使用的文章就介紹到這了,更多相關MySQL正規表示式內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45