mysql 正反模糊查詢 mysql模糊查詢

2021-10-19 22:06:20 字數 1533 閱讀 5950

mysql 使用內建函式進行模糊查詢(locate,position,instr,find_in_set)

1、locate('substr',str,pos)方法

2、position('substr' in `field`)方法

3、instr(`str`,'substr')方法

4、find_in_set(str1,`field`)方法

1、locate('substr',str,pos)方法

解釋:返回 substr 在 str 中第一次出現的位置。如果 substr 在 str 中不存在,返回值為 0,如果substr 在 str 中存在,返回值為substr 在 str中第一次出現的位置。

如果pos存在,返回 substr 在 str 第pos個位置後第一次出現的位置。

例項:select locate('light','ight_20'); 返回0

select locate('light','light_20'); 返回1

select locate('light','test_light_20'); 返回6

select locate('light','light_20',3); 返回0

select locate('light','test_light_20'); 返回6

例如資料庫中欄位scene_name有hdr_light_20,normal_light_16,light_12三種

select * from vtd_result where locate('light',scene_name)>0;

select * from vtd_result where locate('light',scene_name,3)>0;

備註:light是要搜尋的內容,scene_name為被匹配的字段,查詢出所有存在scene_name的資料

1.查出hdr_light_20,normal_light_16,light_12資料

2.查出hdr_light_20,normal_light_16資料

2、position('substr' in `field`)方法

這個方法可以理解為locate()方法的別名,因為它和locate()方法的作用是一樣的。

例項:例如資料庫中欄位scene_name有hdr_light_20,normal_light_16,light_12三種

select * from vtd_result where position('light' in scene_name)>0; 查出hdr_light_20,normal_light_16,light_12資料

3、instr(`str`,'substr')方法

例項:select * from vtd_result where instr(scene_name,'light')>0;

除了上述的方法外,還有乙個函式find_in_set,這個方法比較特殊,他所查詢的必須要是以「,」分隔開。

4、find_in_set(str1,`field`)方法

返回`field`中str1所在的位置索引,其中`field`必須以","分割開。

mysql模糊查詢 MYSQL模糊查詢

mysql提供標準的sql模式匹配,以及一種基於象unix實用程式如vi grep和sed的擴充套件正規表示式模式匹配的格式。一 sql模式 sql的模式匹配允許你使用 匹配任何單個字元,而 匹配任意數目字元 包括零個字元 在 mysql中,sql的模式預設是忽略大小寫的。下面顯示一些例子。注意在你...

mysql模糊查詢索引 MySQL模糊查詢全文索引

全文索引 mysql front dump 2.5 host localhost database test server version 4.0.12 nt log table structure for table t3 create table t3 name char 12 not null...

mysql 模糊查詢

模糊查詢 返回的結果不確定 1 mysql sql 匹配模式 a,使用操作符 like 或者 not like b,表示任意數量的任意字元 標識任意單個字元 查詢使用者名稱以某個字元開頭的使用者 查詢使用者名稱以字元 l 開頭的使用者 l select from user where usernam...