mysql中實現(xiàn)正則模糊查詢功能
作者: 鄭曉 分類: PHP 發(fā)布于: 2012-10-09 03:22 瀏覽:8,376 評論(3)
這是從今天Q群里一個人問的一個問題中,偶然學(xué)到的一個知識,原來在mysql中也可以使用正則進(jìn)行匹配搜索。
他的原題是這樣的:說是做了一個輸入框,需要根據(jù)輸入框中輸入的內(nèi)容來查詢數(shù)據(jù)庫?,F(xiàn)在有個問題,就是想用占位符來實現(xiàn)模糊查詢,比如輸入2*3,需要查詢類似1223、223、2243,但不包括123這樣的結(jié)果,也就是*代表一個通配占位符,這個位置必須有且只有一個字符,那這個查詢要怎么寫?
之前只會用mysql的like和%來實現(xiàn)一些簡單的模糊查詢,所以看到這個問題時首先想到的是如何通過php來實現(xiàn)這個功能。不過像這樣的搜索只用php來實現(xiàn)的話可能會有一些麻煩,由于問題想實現(xiàn)的功能是實現(xiàn)匹配搜索、匹配查詢,應(yīng)該想到正則!
百度了下,mysql果然有著強(qiáng)大的正則匹配功能,用一個關(guān)鍵詞REGEXP 來代替之前的LIKE,用一條的語句簡單的實現(xiàn)了上面的功能:
SELECT * FROM `tb_name` where number REGEXP ‘2.3’;
本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。
本文永久鏈接: http://yjfs.org.cn/mysql-achieve-positive-fuzzy-query.html
一般不用mysql的正則,效率太低。
嗯。畢竟它不是專業(yè)干這個的,哈哈