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

MySQL中替代Like模糊查詢的函數(shù)方式

 更新時間:2023年08月31日 09:27:06   作者:Once0311  
這篇文章主要介紹了MySQL中替代Like模糊查詢的函數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

mysql替代Like模糊查詢的函數(shù)

通常我們模糊查詢都是用like關(guān)鍵字

比如:

查詢name中包含 '王' 字 的 

SELECT name FROM employees where name LIKE '%王%' 

查詢以 '王' 字開頭的name

SELECT name FROM employees where name LIKE '王%' 

查詢以 '王' 字結(jié)尾的name

SELECT name FROM employees where name LIKE '%王' 

替代like的三種方式

1、使用LOCATE(substr,str)函數(shù)

SELECT name FROM employees where LOCATE('王',name)>0  // 相當于Like '%王%'(>0可省略)
SELECT name FROM employees where LOCATE('王',name)=1  // 相當于Like '王%'
SELECT name FROM employees where LOCATE('王',name)=0  // 相當于 NOT Like '%王%'

 2、使用POSITION(substr IN str)函數(shù)

SELECT name FROM employees where POSITION('王'IN name)>0 //相當于LIKE '%王%'
SELECT name FROM employees where POSITION('王'IN name)=1 //相當于LIKE '王%'
SELECT name FROM employees where POSITION('王'IN name)=0 //相當于 NOT LIKE '%王%'

3、使用INSTR(str,substr)函數(shù) 跟LOCATE(substr,str)類似 只是參數(shù)位置換了

SELECT name FROM employees where INSTR(name,'王')>0 //相當于 like '%王%' (>0可省略)
SELECT name FROM employees where INSTR(name,'王')=1 //相當于 like '王%' 
SELECT name FROM employees where INSTR(name,'王')=0 //相當于 not like '%王%' 

4、使用FIND_IN_SET(str,strlist)     注意:該字段存的必須是多個值

 比如name字段中存的是(張三,李四,王五)這種數(shù)據(jù)

SELECT name FROM employees where FIND_IN_SET('王五',name)

MySQL代替like模糊查詢更高效的方法

MySQL-locate()函數(shù)

LOCATE(substr,str,pos)

返回substr字符串在str里pos(起始位置)出現(xiàn)的位置,沒有返回0

注:pos必須大于第一次出現(xiàn)的位置,才能顯示第二次出現(xiàn)的位置

直接用like查詢效率較低:

SELECT id,vari_sku,prod_s_id,prod_s_sku from prod_sync_s_shopee where vari_sku LIKE '%+%';

用locate()函數(shù)的替代寫法:

SELECT id,vari_sku,prod_s_id,prod_s_sku from prod_sync_s_shopee where locate('+',prod_sync_s_shopee.vari_sku) <> 0;

其他函數(shù):

  • POSITION()
  • INSTR()
  • FIND_IN_SET()

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

萨迦县| 托里县| 正蓝旗| 呼玛县| 台东市| 策勒县| 平远县| 肇源县| 乐至县| 太仓市| 茶陵县| 通化县| 合江县| 马边| 泰顺县| 都江堰市| 洛阳市| 西乌| 邵武市| 江口县| 房山区| 栖霞市| 淮安市| 海盐县| 白山市| 苏尼特左旗| 东海县| 垦利县| 开化县| 焉耆| 寿宁县| 丹阳市| 厦门市| 平武县| 兖州市| 石渠县| 泗洪县| 平陆县| 清远市| 修武县| 靖宇县|