mysql查詢FIND_IN_SET?REGEXP實(shí)踐示例
背景
數(shù)據(jù)庫存在一個(gè)字段,里面的數(shù)據(jù)是用逗號隔開存儲的,比如某人的愛好、喜歡的電影類型等場景
現(xiàn)在前臺需要根據(jù)具體的id查詢相應(yīng)的結(jié)果,比如查詢某個(gè)類型電影有哪些人喜歡
FIND_IN_SET實(shí)現(xiàn)
<if test="query.movieTypeId != null"> AND FIND_IN_SET(${query.movieTypeId}, movie_type_ids) </if>
注意:FIND_IN_SET字符串之間不要有空格,空格可能導(dǎo)致查詢失?。?/p>
REGEXP實(shí)現(xiàn)
<if test="query.movieTypeId != null"> AND movie_type_ids REGEXP '[[:<:]]${query.movieTypeId}[[:>:]]' </if>
如何選擇
一般來說,FIND_IN_SET()
比 REGEXP
的查詢效率更高。這是因?yàn)?nbsp;FIND_IN_SET()
函數(shù)是一個(gè) MySQL 內(nèi)置函數(shù),而 REGEXP
是一個(gè)正則表達(dá)式引擎,需要進(jìn)行更多的計(jì)算。
如果你需要進(jìn)行更為復(fù)雜的匹配操作,可以考慮使用 REGEXP
。REGEXP
最大的優(yōu)勢在于可以進(jìn)行高級的匹配操作,因此,在實(shí)際使用中需要根據(jù)具體情況來選擇不同的匹配方式,以達(dá)到最優(yōu)的查詢效率。
以上就是mysql查詢FIND_IN_SET REGEXP實(shí)踐示例的詳細(xì)內(nèi)容,更多關(guān)于mysql查詢的資料請關(guān)注腳本之家其它相關(guān)文章!
- MySQL的FIND_IN_SET函數(shù)使用方法分享
- Mysql中的find_in_set的使用方法介紹
- Mysql中FIND_IN_SET()和IN區(qū)別簡析
- mysql通過find_in_set()函數(shù)實(shí)現(xiàn)where in()順序排序
- MySQL中find_in_set()函數(shù)用法示例詳解
- MySQL之FIND_IN_SET()的用法及說明
- Mysql中find_in_set()函數(shù)用法詳解以及使用場景
- MySQL中的FIND_IN_SET函數(shù)的使用場景
- mysql中find_in_set()函數(shù)用法及自定義增強(qiáng)函數(shù)詳解
- Mysql中FIND_IN_SET函數(shù)的使用及問題
- MySQL FIND_IN_SET函數(shù)的使用場景
相關(guān)文章
MySql連接數(shù)據(jù)庫常用參數(shù)及代碼解讀
這篇文章主要介紹了MySql連接數(shù)據(jù)庫常用參數(shù)及代碼解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02查看 MySQL 已經(jīng)運(yùn)行多長時(shí)間的方法
查看MySQL啟動(dòng)時(shí)間以及運(yùn)行了多長時(shí)間的方法有利用show與updtime或在linux中直接使用grep mysql 相關(guān)參數(shù)來查看,下面我們一起來看看2014-01-01MySQL中執(zhí)行計(jì)劃explain命令示例詳解
這篇文章主要給大家介紹了關(guān)于MySQL中執(zhí)行計(jì)劃explain命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用explain命令具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面說來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05