亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

MySQL高效模糊搜索之內(nèi)置函數(shù)locate instr position find_in_set使用詳解

2024-07-25 19:09:03
字體:
供稿:網(wǎng)友

常用的一共有4個(gè)方法,如下:

1.使用locate()方法

普通用法:

SELECT`column`from`table`wherelocate('keyword',`condition`)>0

類似于java的indexOf();

不過locate()只要找到返回的結(jié)果都大于0(即使是查詢的內(nèi)容就是最開始部分),沒有查找到才返回0;

指定起始位置:

SELECT LOCATE('bar','foobarbar',5);(從foobarbar的第五個(gè)位置開始查找)

2.使用instr()函數(shù)(據(jù)說是locate()的別名函數(shù))

SELECT `column` from `table` where instr(`condition`,‘keyword')>0

唯一不同的是查詢內(nèi)容的位置不同

3.使用position()方法,(據(jù)說也是locate()方法的別名函數(shù),功能一樣)

SELECT `column` from `table` where position(‘keyword' IN `condition`)

不過它不再是通過返回值來判斷,而是使用關(guān)鍵字in

4.使用find_in_set()函數(shù)

如:find_in_set(str,strlist),strlist必須要是以逗號(hào)分隔的字符串

如果字符串str是在的strlist組成的N子串的字符串列表,返回值的范圍為1到N

SQL>SELECTFIND_IN_SET('b','a,b,c,d');---------------------------------------------------------+|SELECTFIND_IN_SET('b','a,b,c,d')|---------------------------------------------------------+|2|---------------------------------------------------------+1rowinset(0.00sec)

總結(jié):locate、position和instr的差別只是參數(shù)的位置不同,同時(shí)locate多一個(gè)起始位置的參數(shù)外,兩者是一樣的。

find_in_set()比較特殊,但它們都是返回要查找的子字符串在指定字符串中的位置。

速度上前3個(gè)要比用like稍快一點(diǎn)。(不過這四個(gè)函數(shù)都不能使用索引)

下面為再為大家介紹一下Mysql中Like的使用方法

MySQL的like語(yǔ)句中的通配符:百分號(hào)、下劃線和escape

%:表示任意個(gè)或多個(gè)字符。可匹配任意類型和長(zhǎng)度的字符。

Sql代碼

select * from user where username like '%huxiao';

select * from user where username like 'huxiao%'; 

select * from user where username like '%huxiao%';

另外,如果需要找出u_name中既有“三”又有“貓”的記錄,請(qǐng)使用and條件

SELECT * FROM [user] WHERE u_name LIKE ‘%三%' AND u_name LIKE ‘%貓%'

若使用 SELECT * FROM [user] WHERE u_name LIKE ‘%三%貓%'

雖然能搜索出“三腳貓”,但不能搜索出符合條件的“張貓三”。

_:表示任意單個(gè)字符。匹配單個(gè)任意字符,它常用來限制表達(dá)式的字符長(zhǎng)度語(yǔ)句:(可以代表一個(gè)中文字符)
 

Sql代碼  

select * from user where username like '_'; 

select * from user where username like 'huxia_'; 

select * from user where username like 'h_xiao'; 

 如果我就真的要查%或者_(dá),怎么辦呢?使用escape,轉(zhuǎn)義字符后面的%或_就不作為通配符了,注意前面沒有轉(zhuǎn)義字符的%和_仍然起通配符作用

Sql代碼  

select username from gg_user where username like '%xiao/_%' escape '/';

select username from gg_user where username like '%xiao/%%' escape '/';

MySQL 通配符

SQL的模式匹配允許你使用“_”匹配任何單個(gè)字符,而“%”匹配任意數(shù)目字符(包括零個(gè)字符)。在 MySQL中,SQL的模式缺省是忽略大小寫的。下面顯示一些例子。

注意在你使用SQL模式時(shí),你不能使用=或!=;而使用LIKE或NOT 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 |+--------+--------+---------+------+------------+-------+

為了找出包含一個(gè)“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個(gè)字符的名字,使用“_”模式字符:

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)你對(duì)這類模式進(jìn)行匹配測(cè)試時(shí),使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它們是同義詞)。

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

“.”匹配任何單個(gè)的字符。

一個(gè)字符類“[...]”匹配在方括號(hào)內(nèi)的任何字符。

例如,“[abc]”匹配“a”、“b”或“c”。為了命名字符的一個(gè)范圍,使用一個(gè)“-”。“[a-z]” 匹配任何小寫字母,而“[0-9]”匹配任何數(shù)字。

“ * ”匹配零個(gè)或多個(gè)在它前面的東西。

例如,“x*”匹配任何數(shù)量的“x”字符,“[0-9]*”匹配的任何數(shù)量的數(shù)字,而“.*”匹配任何數(shù)量的任何東西。

正則表達(dá)式是區(qū)分大小寫的,但是如果你希望,你能使用一個(gè)字符類匹配兩種寫法。

例如,“[aA]”匹配小寫或大寫的“a”而“[a-zA-Z]”匹配兩種寫法的任何字母。

如果它出現(xiàn)在被測(cè)試值的任何地方,模式就匹配(只要他們匹配整個(gè)值,SQL模式匹配)。

為了定位一個(gè)模式以便它必須匹配被測(cè)試值的開始或結(jié)尾,在模式開始處使用“^”或在模式的結(jié)尾用“$”。

為了說明擴(kuò)展正則表達(dá)式如何工作,上面所示的LIKE查詢?cè)谙旅媸褂肦EGEXP重寫:

為了找出以“b”開頭的名字,使用“^”匹配名字的開始并且“[bB]”匹配小寫或大寫的“b”:

mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";+--------+--------+---------+------+------------+------------+| 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é)尾的名字,使用“$”匹配名字的結(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 |+--------+--------+---------+------+------------+-------+

為了找出包含一個(gè)“w”的名字,使用“[wW]”匹配小寫或大寫的“w”:

mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";+----------+-------+---------+------+------------+------------+| 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 |+----------+-------+---------+------+------------+------------+

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

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

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

以上是Mysql模糊搜索方法Like的使用方法,與前l(fā)ocate instr position這三個(gè)內(nèi)置函數(shù)相比性能上要慢些,無(wú)論哪種模糊搜索在查詢時(shí)都會(huì)消耗大量服務(wù)器資源所以在實(shí)際工作中我們應(yīng)盡量少用模糊搜索


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美日韩一二三四区| 黑人操日本美女| 精品人伦一区二区三区蜜桃网站| 久久久夜色精品| 91网站观看| 亚洲福利影片在线| 国产大奶视频| av网址在线观看免费| 女生裸体无遮挡天堂网站免费| 亚洲美女在线看| 亚洲国产精品综合小说图片区| 国产欧美精品一区二区色综合朱莉| 波多野结衣喷潮| 国产呻吟对白刺激无套视频在线| 人人玩人人添人人澡欧美| 成人影院天天5g天天爽无毒影院| 精品国产aⅴ一区二区三区东京热| 久青青在线观看视频国产| 农村老熟妇乱子伦视频| 日本一区免费观看| 精品在线视频免费| 精品成人佐山爱一区二区| 亚洲欧美日韩国产一区二区| 欧美大电影免费观看| 国产一区二区三区日韩欧美| 美国一区二区| 中文字幕日本最新乱码视频| 亚洲成a人片77777精品| 粉嫩高清一区二区三区精品视频| 天堂网在线观看在线观看精品| 九九热视频在线| 欧洲激情综合| 欧美乱妇一区二区三区不卡视频| 欧美激情欧美狂野欧美精品| 少妇高潮一区二区三区99| 免费播放片a高清在线观看| 国产综合香蕉五月婷在线| 国产精品久久久久久婷婷天堂| 亚洲欧美激情另类| 欧美性极品少妇精品网站| 香蕉av在线播放| 美女视频一区二区三区在线| 国产精品福利视频| 亚洲欧美不卡| 国产欧美在线| 国产精品污污网站在线观看| 色老板在线视频一区二区| 亚洲第一福利网| 日韩欧美精品在线视频| 黄色aa久久| 成人v精品蜜桃久久一区| ririsao久久精品一区| 日本精品在线中文字幕| 亚洲a在线播放| 色综合一个色综合| 91大神福利视频| 亚洲娇小娇小娇小| 成人xxx免费视频播放| 一区二区三区自拍| 亚洲区精品久久一区二区三区| 国产人妖伪娘一区91| 国产一区二区三区在线观看| 国产伦一区二区三区| 久久99导航| www.中文字幕久久久| 久操精品在线| 久久av日韩| 日韩亚洲一区中文字幕| 黑人巨大精品欧美一区二区小视频| 福利片免费在线观看| 天堂在线视频播放| 91精品国产综合久久香蕉麻豆| 天天操夜夜操很很操| 999精品视频在线观看| 国产对白在线| 色无极亚洲影院| 电影天堂av在线| 人妻无码中文久久久久专区| 日韩美女免费观看| 日韩成人午夜影院| 性折磨bdsm欧美激情另类| 中文字幕乱在线伦视频乱在线伦视频| 91精品欧美一区二区三区综合在| 综合自拍亚洲综合图不卡区| 国产在线视频你懂得| 18成人免费观看网站下载| 日韩欧美国产一区在线观看| 亚洲欧美精品久久| 精品乱子伦一区二区| 亚洲精品成a人在线观看| 黄色片免费观看视频| 老司机一区二区| 免费高清在线观看电视| 综合国产在线| av一级毛片| 五月婷婷开心综合| 18禁免费观看网站| 爱爱视频免费在线观看| 日韩欧美极品在线观看| 九九热久久66| 91aaa精品| 中文字幕第4页| 国产探花视频在线播放| 日韩国产第一页| av一卡二卡| 在线免费av网站| 中文字幕在线国产精品| 久久久久久中文字幕| 日韩午夜激情av| 午夜看片在线免费| 国产 欧美 日韩 在线| 超碰人人爱人人| 久草福利资源在线观看| 亚洲色图在线视频| 国产人成亚洲第一网站在线播放| 北条麻妃在线观看视频| 东凛在线观看| 热re66久久精品国产99re| 国产午夜在线一区二区三区| 欧美日韩五月天| 欧美xxxxx视频| 欧美日韩综合精品| 蜜桃一级网站.| 92看片淫黄大片看国产片| 一二三四日本在线| 狠狠干狠狠久久| 久久99精品国产自在现线小黄鸭| 国产精品久久久久久妇女6080| 国产高清不卡一区| 日韩午夜黄色| 在线日韩av| 国产欧美日韩精品在线观看| 国产精品自拍合集| 欧美成人免费在线观看| 久久免费在线观看视频| 久久国产在线视频| 久久99热狠狠色一区二区| 日韩激情综合网| 91国偷自产一区二区三区观看| 国产小视频你懂的| 亚洲欧美国产一区二区三区| 国产精品美女网站| 伊人色综合久久天天五月婷| 亚洲一区精品在线观看| 国产麻豆剧果冻传媒视频杜鹃| 先锋影音男人| 777一区二区| 四虎电影院在线观看| 日韩精品国产欧美| 久久国产麻豆精品| 亚洲精品1区2区3区| 老司机精品视频一区二区| 99re这里只有| 51午夜精品视频| 92精品国产成人观看免费| 国产精品69久久久久孕妇欧美| 裸体网站视频| 国产盗摄一区二区三区| 国产美女被遭强高潮免费网站| 亚洲狠狠婷婷综合久久蜜桃| 欧美日韩国产综合一区二区三区| 国产成人精品一区二区三区在线| 一区二区三区不卡在线观看| 精品久久人人做人人爽| 操你啦视频在线| 网站免费满18成年在线观看| 亚洲欧美一区二区三区极速播放| 福利h视频在线| 人妖精品videosex性欧美| 久久精品国产久精国产思思| 欧美小视频在线| 91高清免费看| 国产大学生视频| 青青伊人久久| 欧美久久香蕉| 在线xxxxx| 欧美成人免费一级人片100| 91精品国产高清久久久久久91裸体| 噼里啪啦国语在线观看免费版高清版| 精品国产老师黑色丝袜高跟鞋| 国产一区二区视频在线免费观看| 国产亚洲精品午夜高清影院| 日韩精品欧美激情| 三级久久三级久久久| 好看的av在线不卡观看| www欧美xxxx| 日韩av中文字幕在线免费观看| 亚洲国产日韩在线一区模特| 免费黄色国产视频| 亚洲成av人片一区二区密柚| 性高潮久久久久久久久| 亚洲伊人婷婷| 手机视频在线观看| 亚洲国产精品一区二区久久| 欧美日韩高清在线一区| 国产美女在线免费观看| 人妻精品久久久久中文字幕| 91精品综合视频| 日韩高清一二三区| 亚洲一区电影在线观看| 视频一区二区三| 91官网在线免费观看| 日韩三区免费| 国内视频精品| 亚洲成人a**址| 亚洲欧洲成人精品av97| 日韩欧美专区| 麻豆一区二区在线观看| 国产精品视频入口| 91午夜在线播放| 精品久久国产字幕高潮| 日韩一区二区三区四区五区| 精品国产精品网麻豆系列| 欧美天堂一区二区三区| 极品白嫩丰满美女无套| 欧美在线va视频| 日本高清久久一区二区三区| 亚洲av无码一区二区二三区| 欧美久久精品午夜青青大伊人| 中文在线а√天堂| 成人免费网站视频| 国产小视频福利在线| 少妇人妻好深好紧精品无码| 国产98色在线|日韩| 最近中文字幕av| 欧美性猛交xxxxx免费看| 免费视频中文字幕| 中国人与牲禽动交精品| www.xxxx日本| 中文字幕人成人乱码| 国产sm调教视频| 亚洲在线第一页| 无码熟妇人妻av| 性欧美大胆高清视频| 茄子视频成人免费观看| 午夜片欧美伦| 嫩草av久久伊人妇女超级a| 三级网站视频在在线播放| www.xxxx精品| 亚洲视频在线观看视频| 欧美电影《轻佻寡妇》| 91视频免费进入| 久久久人成影片一区二区三区| 99久re热视频这里只有精品6| a√在线中文网新版址在线| 美女av在线免费看| 国产欧美熟妇另类久久久| 草草视频在线观看| xxx国产hd| 免费网站永久免费观看| 国产高清一区二区三区视频| www.91popny.com| 国产一区二区四区| 日本女人高潮视频| 国产精品久久久久久久久久妞妞| 欧美做a欧美| 一区二区三区国产在线| 久久国产精品久久国产精品| 欧美一区二区三区精品电影| 偷偷要91色婷婷| 国产一级精品毛片| www.超级碰| 亚洲精品二区| 被弄出白浆喷水了视频| 欧美不卡一区二区| 国产乱色在线观看| 99久久精品网| 狠狠人妻久久久久久综合| 亚洲精品一二三四区| 国产一区二区按摩在线观看| 9999在线精品视频| 色综合久久悠悠| 欧美电影精品一区二区| 奇米网一区二区| 久久久夜色精品| 国产人妻互换一区二区| 亚洲精品自拍| 小次郎av收藏家| 92福利视频午夜1000合集在线观看| 国产精品久久久久久亚洲毛片| 久久久久国产精品免费| 动漫精品一区二区三区| 九九九视频在线观看| 亚洲国产精华液| 日韩av电影中文字幕| 91中文字幕网| 精品国产一区二区三区久久久狼牙| 福利在线视频导航| 色婷婷精品大在线视频| 小说区图片区色综合区| 爽爽视频在线观看| 国产一区二区电影在线观看| 久久尤物电影视频在线观看| 久久6免费高清热精品| 欧美重口另类videos人妖| 青青青草网站免费视频在线观看| 人xxxx性xxxxx欧美| 91精品国产闺蜜国产在线闺蜜| 日韩成人中文字幕在线观看| 777精品伊人久久久久大香线蕉| 男女无套免费视频网站动漫| 免费黄色av电影| av中文一区二区三区| 日韩一区二区三区精品视频第3页| 久热久热免费视频中文字幕777| 日本一级理论片在线大全| 77777_亚洲午夜久久多人| 老色鬼精品视频在线观看播放| 在线视频网站| 秋霞av一区二区三区| 日本大胆欧美人术艺术动态| 久久精品国产99久久99久久久| 国产精品一区二区三| 午夜精品在线免费观看| 大黑人交xxx极品hd| 日本公妇乱淫免费视频一区三区| 欧美午夜电影网| 欧美亚一区二区三区| 亚洲人成伊人成综合网小说| 久久国产精品精品国产色婷婷| 欧美午夜不卡在线观看免费| 日韩人妻一区二区三区蜜桃视频| 亚亚洲欧洲精品| 欧美日韩色一区| 国产又大又粗又硬| 欧美在线亚洲在线| 国产精品久久久视频| 老司机亚洲精品一区二区|