mysql查詢(xún)FIND_IN_SET REGEXP實(shí)踐示例
目錄
- 背景
- FIND_IN_SET實(shí)現(xiàn)
- REGEXP實(shí)現(xiàn)
- 如何選擇
背景
數(shù)據(jù)庫(kù)存在一個(gè)字段,里面的數(shù)據(jù)是用逗號(hào)隔開(kāi)存儲(chǔ)的,比如某人的愛(ài)好、喜歡的電影類(lèi)型等場(chǎng)景
現(xiàn)在前臺(tái)需要根據(jù)具體的id查詢(xún)相應(yīng)的結(jié)果,比如查詢(xún)某個(gè)類(lèi)型電影有哪些人喜歡
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)致查詢(xún)失敗!
REGEXP實(shí)現(xiàn)
<if test="query.movieTypeId != null"> AND movie_type_ids REGEXP "[[:<:]]${query.movieTypeId}[[:>:]]"</if>
如何選擇
一般來(lái)說(shuō),FIND_IN_SET()
比 REGEXP
的查詢(xún)效率更高。這是因?yàn)?FIND_IN_SET()
函數(shù)是一個(gè) MySQL 內(nèi)置函數(shù),而 REGEXP
是一個(gè)正則表達(dá)式引擎,需要進(jìn)行更多的計(jì)算。
如果你需要進(jìn)行更為復(fù)雜的匹配操作,可以考慮使用 REGEXP
。REGEXP
最大的優(yōu)勢(shì)在于可以進(jìn)行高級(jí)的匹配操作,因此,在實(shí)際使用中需要根據(jù)具體情況來(lái)選擇不同的匹配方式,以達(dá)到最優(yōu)的查詢(xún)效率。
以上就是mysql查詢(xún)FIND_IN_SET REGEXP實(shí)踐示例的詳細(xì)內(nèi)容,更多關(guān)于mysql查詢(xún)的資料請(qǐng)關(guān)注其它相關(guān)文章!
相關(guān)文章:
1. Mysql入門(mén)系列:對(duì)MYSQL查詢(xún)中有疑問(wèn)的數(shù)據(jù)進(jìn)行編碼2. MySQL查詢(xún)重寫(xiě)插件的使用3. Mysql查詢(xún)優(yōu)化之IN子查詢(xún)優(yōu)化方法詳解4. mysql查詢(xún)語(yǔ)句優(yōu)化5. mysql查詢(xún)的控制語(yǔ)句圖文詳解6. mysql查詢(xún)表是否被鎖的方法7. MYSQL查詢(xún)時(shí)間范圍內(nèi)的數(shù)據(jù)示例代碼8. Mysql查詢(xún)?nèi)タ崭竦亩喾N方法匯總9. MySQL查詢(xún)用戶(hù)權(quán)限的方法總結(jié)10. 理解MySQL查詢(xún)優(yōu)化處理過(guò)程
