mysql regexp匹配多個字符串實現(xiàn)
項目場景:
數(shù)據(jù)結(jié)構(gòu)
其中nameArr存儲的是名字集合,現(xiàn)在的需求是傳入"aaa","fff",需要把包含這兩個name的數(shù)據(jù)都查出來。
解決方案:
可以使用
REGEXP
來匹配包含多個特定ID的字符串。使用以下正則表達式:
select * from test where nameArr regexp '"aaa"|"fff"'
使用mybatis實現(xiàn)
mapper
/** * 正則匹配多個id字符串 */ List<TestEntity> list(@Param("ids") List<String> ids);
xml
<select id="list" resultType="com.test.TestEntity"> select * from test <if test="ids != null and ids.size()>0"> and nameArr regexp concat('"', concat_ws('"|"', <foreach collection="ids" item="item" separator=","> #{item} </foreach> ),'"') </if> </select>
解析一下這個sql
ids這個集合會循環(huán)逗號拼接,打印sql
select * from test where nameArr regexp concat('"',concat_ws('"|"','aaa','fff'),'"')
最終的sql
select * from test where nameArr regexp '"aaa"|"fff"'
到此這篇關(guān)于mysql regexp匹配多個字符串實現(xiàn)的文章就介紹到這了,更多相關(guān)mysql regexp匹配多個字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 外鍵約束和表關(guān)系相關(guān)總結(jié)
一個項目中如果將所有的數(shù)據(jù)都存放在一張表中是不合理的,比如一個員工信息,公司只有2個部門,但是員工有1億人,就意味著員工信息這張表中的部門字段的值需要重復(fù)存儲,極大的浪費資源,因此可以定義一個部門表和員工信息表進行關(guān)聯(lián),而關(guān)聯(lián)的方式就是外鍵。2021-06-06sql中替換函數(shù)replace()用法與實例總結(jié)
這篇文章主要給大家介紹了關(guān)于sql中替換函數(shù)replace()用法與實例的相關(guān)資料,在SQL中REPLACE函數(shù)用于替換一個字符串中的一部分為另一個字符串,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-02-02MySQL常用命令與內(nèi)部組件及SQL優(yōu)化詳情
這篇文章主要介紹了MySQL常用命令與內(nèi)部組件及SQL優(yōu)化詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-07-07