亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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  // 相當(dāng)于Like '%王%'(>0可省略)
SELECT name FROM employees where LOCATE('王',name)=1  // 相當(dāng)于Like '王%'
SELECT name FROM employees where LOCATE('王',name)=0  // 相當(dāng)于 NOT Like '%王%'

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

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

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

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

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

 比如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é)

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

相關(guān)文章

  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    MySQL 字符串拆分操作(含分隔符的字符串截取)

    這篇文章主要介紹了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • MySQL筆記之索引的使用

    MySQL筆記之索引的使用

    索引是創(chuàng)建在表上的,對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)其作用主要在于提高查詢的速度,降低數(shù)據(jù)庫系統(tǒng)的性能開銷
    2013-05-05
  • mysql過濾復(fù)制思路詳解

    mysql過濾復(fù)制思路詳解

    這篇文章主要介紹了mysql過濾復(fù)制的實(shí)現(xiàn)思路,主要講解了兩種思路,一種是在主庫的binlog上實(shí)現(xiàn)另一種是從庫的sql線程上實(shí)現(xiàn),具體實(shí)現(xiàn)過程跟隨小編一起看看吧
    2021-08-08
  • 年底了,你的mysql密碼安全嗎

    年底了,你的mysql密碼安全嗎

    這篇文章主要介紹了MySQL密碼安全的相關(guān)知識,幫助大家更好的使用數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-01-01
  • Mysql查詢不需要Group?by的字段方法實(shí)例

    Mysql查詢不需要Group?by的字段方法實(shí)例

    在平時(shí)的開發(fā)任務(wù)中我們經(jīng)常會用到MYSQL的GROUP BY分組,用來獲取數(shù)據(jù)表中以分組字段為依據(jù)的統(tǒng)計(jì)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Mysql查詢不需要Group?by字段方法的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • mysql數(shù)據(jù)庫之索引詳細(xì)介紹

    mysql數(shù)據(jù)庫之索引詳細(xì)介紹

    大家好,本篇文章主要講的是mysql數(shù)據(jù)庫之索引詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Linux下mysql 5.6.17 安裝圖文教程

    Linux下mysql 5.6.17 安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了Linux下mysql 5.6.17 安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • mysql支持跨表delete刪除多表記錄

    mysql支持跨表delete刪除多表記錄

    Mysql可以在一個(gè)sql語句中同時(shí)刪除多表記錄,也可以根據(jù)多個(gè)表之間的關(guān)系來刪除某一個(gè)表中的記錄
    2012-12-12
  • MySQL sum后再計(jì)算percentage的多種解決辦法

    MySQL sum后再計(jì)算percentage的多種解決辦法

    這篇文章主要介紹了MySQL sum后再計(jì)算percentage的多種解決辦法,over() 函數(shù),Cross Join,Select 嵌套查詢以及 with 函數(shù)處理,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • 了解MySQL查詢語句執(zhí)行過程(5大組件)

    了解MySQL查詢語句執(zhí)行過程(5大組件)

    這篇文章主要介紹了了解MySQL查詢語句執(zhí)行過程(5大組件),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08

最新評論