《Mysql必讀mysql模糊查詢like和regexp小結》要點:
本文介紹了Mysql必讀mysql模糊查詢like和regexp小結,希望對您有用。如果有疑問,可以聯系我們。
在mysql中實現模糊查詢的有like和regexp.MYSQL數據庫
------------------------MYSQL數據庫
like的用法許多人都是知道的,最為常用的情況就是select * from a where name like '%a%';MYSQL數據庫
其中'%'代表的是任意個字符,它的效果像是正則表達式里的'*',它有幾種用法:'a%','%a%','%a',分別表示以什么開頭,存在什么以及以什么結尾.MYSQL數據庫
另外也可以使用'_'字符,這表示一個任意字符.效果類似正則表達式里面的'.'.MYSQL數據庫
like是對這個字段里面的所有字符串進行比較,效率并不高.MYSQL數據庫
------------------------MYSQL數據庫
regexp就是mysql的正則匹配操作符.MYSQL數據庫
regexp的用法如:select * from a where name regexp 'a';其寫法可以參照正則表達式.像是'*','[a-z]','a|b','cc$','^b{2}$'.MYSQL數據庫
------------------------MYSQL數據庫
在hibernate中沒有提供regexp的直接使用功能,但是可以通過添加自定義函數的方式實現.MYSQL數據庫
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的路徑代替.MYSQL數據庫
HQL語句可以寫作:MYSQL數據庫
from A where regexp(a,'a|b|c')=1;MYSQL數據庫
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/3316.html