文章詳情頁
mysql查詢FIND_IN_SET REGEXP實(shí)踐示例
瀏覽:253日期:2023-05-08 10:17:42
目錄
- 背景
- FIND_IN_SET實(shí)現(xiàn)
- REGEXP實(shí)現(xiàn)
- 如何選擇
背景
數(shù)據(jù)庫存在一個字段,里面的數(shù)據(jù)是用逗號隔開存儲的,比如某人的愛好、喜歡的電影類型等場景

現(xiàn)在前臺需要根據(jù)具體的id查詢相應(yīng)的結(jié)果,比如查詢某個類型電影有哪些人喜歡
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)致查詢失敗!
REGEXP實(shí)現(xiàn)
<if test="query.movieTypeId != null"> AND movie_type_ids REGEXP "[[:<:]]${query.movieTypeId}[[:>:]]"</if>如何選擇
一般來說,FIND_IN_SET() 比 REGEXP 的查詢效率更高。這是因為 FIND_IN_SET() 函數(shù)是一個 MySQL 內(nèi)置函數(shù),而 REGEXP 是一個正則表達(dá)式引擎,需要進(jìn)行更多的計算。
如果你需要進(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)文章!
標(biāo)簽:
MySQL
相關(guān)文章:
1. Mysql入門系列:MYSQL列類型選擇與MYSQL查詢效率2. Mysql查詢優(yōu)化之IN子查詢優(yōu)化方法詳解3. mysql查詢語句優(yōu)化4. Mysql查詢語句如何實(shí)現(xiàn)無限層次父子關(guān)系查詢5. mysql查詢的控制語句圖文詳解6. Mysql入門系列:對MYSQL查詢中有疑問的數(shù)據(jù)進(jìn)行編碼7. Mysql查詢?nèi)タ崭竦亩喾N方法匯總8. MYSQL查詢時間范圍內(nèi)的數(shù)據(jù)示例代碼9. mysql查詢條件not in 和 in的區(qū)別及原因說明10. 理解MySQL查詢優(yōu)化處理過程
排行榜

網(wǎng)公網(wǎng)安備