婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

熱門標(biāo)簽:如何在高德地圖標(biāo)注新地址 外呼系統(tǒng)服務(wù) 高德地圖標(biāo)注中心個人注冊 高德地圖標(biāo)注模式 400電話辦理都選易號網(wǎng) 外呼系統(tǒng)防封號違法嗎 湘潭電銷機器人咨詢電話 寶應(yīng)電信400電話辦理費用 電銷機器人針對的

常用的一共有4個方法,如下:

1.使用locate()方法

普通用法:

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

類似于java的indexOf();

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

指定起始位置:

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

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必須要是以逗號分隔的字符串

如果字符串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ù)的位置不同,同時locate多一個起始位置的參數(shù)外,兩者是一樣的。

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

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

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

MySQL的like語句中的通配符:百分號、下劃線和escape

%:表示任意個或多個字符。可匹配任意類型和長度的字符。

Sql代碼

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

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

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

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

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

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

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

_:表示任意單個字符。匹配單個任意字符,它常用來限制表達式的字符長度語句:(可以代表一個中文字符)
 

Sql代碼  

select * from user where username like '_'; 

select * from user where username like 'huxia_'; 

select * from user where username like 'h_xiao'; 

 如果我就真的要查%或者_,怎么辦呢?使用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的模式匹配允許你使用“_”匹配任何單個字符,而“%”匹配任意數(shù)目字符(包括零個字符)。在 MySQL中,SQL的模式缺省是忽略大小寫的。下面顯示一些例子。

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

為了找出包含一個“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提供的模式匹配的其他類型是使用擴展正則表達式。當(dāng)你對這類模式進行匹配測試時,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它們是同義詞)。

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

“.”匹配任何單個的字符。

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

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

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

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

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

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

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

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

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

為了找出以“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 |
+--------+--------+---------+------+------------+-------+

為了找出包含一個“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 |
+----------+-------+---------+------+------------+------------+

既然如果一個正規(guī)表達式出現(xiàn)在值的任何地方,其模式匹配了,就不必再先前的查詢中在模式的兩方面放置一個通配符以使得它匹配整個值,就像如果你使用了一個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 |
+-------+--------+---------+------+------------+-------+

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

您可能感興趣的文章:
  • mysql中find_in_set()函數(shù)的使用及in()用法詳解
  • MySQL的FIND_IN_SET函數(shù)使用方法分享
  • mysql中find_in_set()函數(shù)的使用詳解
  • mysql通過find_in_set()函數(shù)實現(xiàn)where in()順序排序
  • mysql中find_in_set函數(shù)的基本使用方法

標(biāo)簽:宿遷 黔南 賀州 黃山 南充 蘭州 馬鞍山 佛山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL高效模糊搜索之內(nèi)置函數(shù)locate instr position find_in_set使用詳解》,本文關(guān)鍵詞  MySQL,高效,模糊,搜索,之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL高效模糊搜索之內(nèi)置函數(shù)locate instr position find_in_set使用詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL高效模糊搜索之內(nèi)置函數(shù)locate instr position find_in_set使用詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    在线免费观看成人短视频| 国产丝袜欧美中文另类| 国产欧美中文在线| 欧美日韩精品系列| 欧美日韩美女一区二区| 91福利社在线观看| 欧美男女性生活在线直播观看| 国产在线精品免费av| 久久电影国产免费久久电影| 国产精品99久久久久久似苏梦涵| 成人动漫一区二区| 色婷婷av久久久久久久| 337p亚洲精品色噜噜噜| 2023国产精品视频| 丝袜美腿亚洲一区| 福利91精品一区二区三区| av不卡在线播放| 欧美色图免费看| 色综合亚洲欧洲| 精品久久久久久久久久久院品网| 亚洲免费毛片网站| 日韩天堂在线观看| 欧美亚洲综合一区| 精品国产区一区| 欧美日韩在线播放| 2024国产精品视频| 99视频热这里只有精品免费| 91亚洲大成网污www| 91色视频在线| 国产精品乱码久久久久久| 国产盗摄一区二区| 国产片一区二区三区| 国产不卡高清在线观看视频| 欧美成人女星排名| 国产一区二区精品久久99| 久久99国产精品久久| 精品免费日韩av| 日本道色综合久久| 99精品视频在线免费观看| 99国产精品国产精品毛片| 国产美女主播视频一区| 国产乱子轮精品视频| 欧美日韩激情一区二区三区| 成人免费毛片片v| 久久精品亚洲一区二区三区浴池 | 国产成人亚洲综合a∨婷婷| 色婷婷久久一区二区三区麻豆| 丝袜亚洲另类丝袜在线| 香港成人在线视频| 欧美视频在线播放| 亚洲天堂精品在线观看| av在线这里只有精品| 欧美精品v国产精品v日韩精品| 久久久久久久久99精品| 韩国在线一区二区| 日本 国产 欧美色综合| 9色porny自拍视频一区二区| 欧美成人一级视频| 日日夜夜精品免费视频| 夜夜精品浪潮av一区二区三区 | 亚洲精品欧美专区| 欧美性受极品xxxx喷水| 国产成人av电影在线播放| 99re成人精品视频| 日本vs亚洲vs韩国一区三区二区| 国产精品高潮呻吟久久| 亚洲激情欧美激情| 欧美日韩国产三级| 国产精品亚洲а∨天堂免在线| 亚洲乱码日产精品bd| 日韩三级免费观看| 色婷婷激情一区二区三区| 国产在线视频一区二区| 亚洲男同1069视频| 久久久精品免费网站| 欧美日韩五月天| av综合在线播放| 久久成人18免费观看| 亚洲国产综合视频在线观看| 国产精品午夜免费| 日韩三级电影网址| 欧美精品欧美精品系列| 97国产一区二区| 国产精品一区二区果冻传媒| 麻豆91在线看| 日日欢夜夜爽一区| 亚洲乱码中文字幕| 国产精品国模大尺度视频| 91精品国产一区二区三区蜜臀 | 欧美三级韩国三级日本一级| 成人高清视频在线| 韩国在线一区二区| 国模套图日韩精品一区二区| 日本不卡免费在线视频| 香蕉乱码成人久久天堂爱免费| 亚洲人亚洲人成电影网站色| 欧美高清一级片在线观看| 久久亚洲综合色一区二区三区 | 色丁香久综合在线久综合在线观看| 国产精品久久精品日日| 久久久精品免费观看| 色综合久久久久网| 午夜精品福利一区二区三区蜜桃| 777午夜精品视频在线播放| 国产成人在线视频免费播放| 亚洲成人高清在线| 久久一留热品黄| 欧美日韩精品欧美日韩精品一综合 | 亚洲男人的天堂在线aⅴ视频| 久久婷婷国产综合精品青草| 精品国产91乱码一区二区三区| 欧美一级免费大片| 日韩亚洲欧美在线观看| 91精品国产综合久久福利| 欧美一区二区国产| 精品国产乱码久久久久久牛牛| 国产成人无遮挡在线视频| 成人涩涩免费视频| 一道本成人在线| 精品视频1区2区| 日韩欧美国产综合在线一区二区三区| 日韩欧美色综合网站| 久久久久亚洲综合| 中文一区在线播放| 一区二区三区日本| 视频一区免费在线观看| 久久草av在线| 成人中文字幕电影| 欧美这里有精品| 91精品国产91综合久久蜜臀| 欧美精品一区二区三区很污很色的| 亚洲一级二级在线| 久久国内精品视频| 成人中文字幕合集| 欧美日韩不卡在线| 久久精品一区四区| 亚洲人成网站影音先锋播放| 日韩经典一区二区| 成人免费va视频| 欧美日本一道本| 欧美激情一区二区在线| 亚洲成人自拍网| 国产精品一区久久久久| 欧美性高清videossexo| 久久亚洲二区三区| 亚洲男人的天堂在线aⅴ视频| 亚洲成人自拍网| 99精品视频一区二区三区| 777午夜精品免费视频| 亚洲黄色性网站| 亚洲人成电影网站色mp4| 亚洲午夜久久久久久久久久久| 亚洲国产一区二区在线播放| 亚洲成人av电影在线| 亚洲一区二区三区中文字幕 | 久久99最新地址| 午夜精品久久久久| 国产高清不卡一区| 欧美乱妇一区二区三区不卡视频| 精品99999| 亚洲午夜激情网页| av成人老司机| 久久久美女毛片| 美日韩一区二区| 日韩极品在线观看| 色哟哟一区二区| 国产欧美一区二区精品秋霞影院 | 精品国产一区二区三区四区四| 国产日韩亚洲欧美综合| 久久av中文字幕片| 欧美一区二区观看视频| 石原莉奈一区二区三区在线观看| 色哟哟日韩精品| 国产欧美日韩精品a在线观看| 欧美aaaaaa午夜精品| 欧美另类高清zo欧美| 日韩成人一级片| 欧美日韩精品福利| 一区二区不卡在线播放| 色综合天天综合给合国产| 久久毛片高清国产| 日本vs亚洲vs韩国一区三区二区| 国产一区二区影院| 日本韩国精品在线| 亚洲欧美日韩国产成人精品影院| 不卡视频一二三| 午夜精品久久久久久久久| 日韩精品免费专区| 成人一级黄色片| 国产午夜亚洲精品羞羞网站| 午夜欧美电影在线观看| 在线免费视频一区二区| 精品系列免费在线观看| 精品视频1区2区| 亚洲国产视频a| 欧美日韩国产首页| 亚洲成a人片在线观看中文| 欧美亚洲愉拍一区二区| 无吗不卡中文字幕| 8v天堂国产在线一区二区|