文章詳情頁
mysql查詢FIND_IN_SET REGEXP實踐示例
瀏覽:105日期:2023-05-08 10:17:42
目錄
- 背景
- FIND_IN_SET實現
- REGEXP實現
- 如何選擇
背景
數據庫存在一個字段,里面的數據是用逗號隔開存儲的,比如某人的愛好、喜歡的電影類型等場景
現在前臺需要根據具體的id查詢相應的結果,比如查詢某個類型電影有哪些人喜歡
FIND_IN_SET實現
<if test="query.movieTypeId != null"> AND FIND_IN_SET(${query.movieTypeId}, movie_type_ids)</if>
注意:FIND_IN_SET字符串之間不要有空格,空格可能導致查詢失敗!
REGEXP實現
<if test="query.movieTypeId != null"> AND movie_type_ids REGEXP "[[:<:]]${query.movieTypeId}[[:>:]]"</if>
如何選擇
一般來說,FIND_IN_SET()
比 REGEXP
的查詢效率更高。這是因為 FIND_IN_SET()
函數是一個 MySQL 內置函數,而 REGEXP
是一個正則表達式引擎,需要進行更多的計算。
如果你需要進行更為復雜的匹配操作,可以考慮使用 REGEXP
。REGEXP
最大的優勢在于可以進行高級的匹配操作,因此,在實際使用中需要根據具體情況來選擇不同的匹配方式,以達到最優的查詢效率。
以上就是mysql查詢FIND_IN_SET REGEXP實踐示例的詳細內容,更多關于mysql查詢的資料請關注其它相關文章!
標簽:
MySQL
相關文章:
排行榜
