mysql模糊查詢like和regexp小結(jié)
在mysql中實(shí)現(xiàn)模糊查詢的有l(wèi)ike和regexp。
------------------------
like的用法許多人都是知道的,最為常用的情況就是select * from a where name like '%a%';
其中'%'代表的是任意個(gè)字符,它的效果像是正則表達(dá)式里的'*',它有幾種用法:'a%','%a%','%a',分別表示以什么開頭,存在什么以及以什么結(jié)尾。
另外也可以使用'_'字符,這表示一個(gè)任意字符。效果類似正則表達(dá)式里面的'.'。
like是對這個(gè)字段里面的所有字符串進(jìn)行比較,效率并不高。
------------------------
regexp就是mysql的正則匹配操作符.
regexp的用法如:select * from a where name regexp 'a';其寫法可以參照正則表達(dá)式.像是'*','[a-z]','a|b','cc$','^b{2}$'。
------------------------
在hibernate中沒有提供regexp的直接使用功能,但是可以通過添加自定義函數(shù)的方式實(shí)現(xiàn)。
public class MySQL5DialectRegexp extends org.hibernate.dialect.MySQLInnoDBDialect{ public MySQL5DialectRegexp() { super(); registerFunction( "regexp", new SQLFunctionTemplate(Hibernate.BOOLEAN, "?1 REGEXP ?2") ); } }
其中org.hibernate.dialect.MySQLInnoDBDialect是hibernate配置信息hibernate.dialect的值,之后可以使用MySQL5DialectRegexp的路徑代替.
HQL語句可以寫作:
from A where regexp(a,'a|b|c')=1;
相關(guān)文章
詳解MySQL數(shù)據(jù)庫優(yōu)化的八種方式(經(jīng)典必看)
關(guān)于數(shù)據(jù)庫優(yōu)化,網(wǎng)上有不少資料和方法,但是不少質(zhì)量參差不齊,有些總結(jié)的不夠到位,內(nèi)容冗雜。今天給大家分享一篇文章關(guān)于mysql數(shù)據(jù)庫優(yōu)化的八種方式,非常經(jīng)典,需要的的朋友參考下2017-03-03mysql如何動(dòng)態(tài)創(chuàng)建連續(xù)時(shí)間段
這篇文章主要介紹了mysql如何動(dòng)態(tài)創(chuàng)建連續(xù)時(shí)間段問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01MySQL模糊查詢用法大全(正則、通配符、內(nèi)置函數(shù))
這篇文章主要介紹了MySQL模糊查詢用法大全(正則、通配符、內(nèi)置函數(shù)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Mysql誤刪數(shù)據(jù)解決方案及kill語句原理
這篇文章主要介紹了Mysql誤刪數(shù)據(jù)解決方案及kill語句原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Linux系統(tǒng)下實(shí)現(xiàn)遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法教程
MySQL默認(rèn)root用戶只能本地訪問,不能遠(yuǎn)程連接管理mysql數(shù)據(jù)庫,Linux如何開啟mysql遠(yuǎn)程連接?下面這篇文章主要給大家介紹了在Linux系統(tǒng)下實(shí)現(xiàn)遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法教程,需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06mysql出現(xiàn)“Incorrect key file for table”處理方法
今天在恢復(fù)一個(gè)客戶數(shù)據(jù)的時(shí)候。發(fā)現(xiàn)了一貫問題。有多個(gè)表損壞了。因?yàn)槎际侵苯影驯韽?fù)制進(jìn)去的。然后就出現(xiàn)了這個(gè)問題問題2013-07-07MySQL的Replace into 與Insert into on duplicate key update真正的不同
今天聽同事介紹oracle到mysql的數(shù)據(jù)migration,他用了Insert into ..... on duplicate key update ...,我當(dāng)時(shí)就想怎么不用Replace呢,于是回來就仔細(xì)查了下,它們果然還是有區(qū)別的2014-02-02最全的mysql 5.7.13 安裝配置方法圖文教程(linux) 強(qiáng)烈推薦!
這篇文章主要為大家詳細(xì)介紹了linux下mysql 5.7.13 安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下2016-08-08