MySQL全文索引的使用
自己原文公眾號: https://mp.weixin.qq.com/s/BhUH6rcQHNGpW7_WQEnScA
有開發求助,要查公司,但是公司帶括號。括號可能是全形的也可能是半形的。這種問題不是第一次見了,見得太多了。大家似乎習慣是輸入時候是任意的,只是查詢時候來做區分。其實這是不對的。就像垃圾分類是在小區垃圾桶做?還是在垃圾處理廠最後一道手續的時候做?顯然前期分類比較合適。
我們以前做公安系統,錄入路口、路段、座標等等都是有嚴格規定。所以在頁面上你可以隨意輸入,但是輸入框內會自動給你全部轉換成統一格式,以便統一儲存。現在發現我的第一個公司的開發團隊的水平是我經歷過最高的。從設計到實現,不僅規範而且高效。原因是都是70、80的為開發主力或者開發負責人。
mysql> create table a (id int auto_increment primary key,user varchar(20), fulltext(user) with parser ngram);
Query OK, 0 rows affected (0.20 sec)
模擬資料以後是這樣的:(資料是隨便編的不一定有這些公司,主要是為了全形和半形的括號)
如果我們命令是
select * from a where user like '%網易%';
查出資料過多。
如果命令是select * from a where user like '%廣州%';
查出資料有不符合的。
既不能多也不能少,而且要處理掉括號。
SQL應該這樣寫:
select * from a where match(user) against ('+網易 +廣州' IN BOOLEAN MODE);
嗯,符合要求。
Oracle下的實現請看下一篇。PostgreSQL的也有,只是不夠熟練,需要再嘗試一下,陸續推出。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847121/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql中文全文索引的記錄MySql索引
- MySQL索引系列:全文索引MySql索引
- MySQL全文索引應用簡明教程MySql索引
- MySQL 全文索引應用簡明教程MySql索引
- 【轉載】oracle全文索引的建立和使用Oracle索引
- mysql中文進行全文索引支援問題MySql索引
- 在laravel中使用mysql fulltext全文索引代替like查詢提高效能LaravelMySql索引
- mysql百萬級全文索引及match快速查詢MySql索引
- MYSQL中的普通索引,主健,唯一,全文索引區別MySql索引
- Oracle的全文索引Oracle索引
- 為什麼ElasticSearch比MySQL更適合全文索引ElasticsearchMySql索引
- oracle 全文索引的配置Oracle索引
- MySQL 為什麼全文索引查中文找不結果MySql索引
- 全文索引的效能優化索引優化
- Oracle:全文索引Oracle索引
- 在全文索引中同義詞的使用(SQL SERVER 2005)索引SQLServer
- oracle全文索引的簡單配置Oracle索引
- ZT oracle全文索引Oracle索引
- SqlServer 建立全文索引SQLServer索引
- MySQL全文索引原始碼剖析之Insert語句執行過程MySql索引原始碼
- MongoDB之索引(全文索引)MongoDB索引
- mysql的使用MySql
- 全文索引和查詢概念索引
- oracle全文索引之STORAGE PREFERENCEOracle索引
- oracle全文索引之WORDLIST PREFERENCEOracle索引
- 全文索引參考總結索引
- 不錯的關於Oracle 全文索引的文章(zt)Oracle索引
- Navicat for MySQL 與MySQL的混合使用MySql
- oracle 之全文索引表的分割槽交換案例Oracle索引
- 利用Oracle的全文索引實現切詞功能Oracle索引
- MySQL JOIN的使用MySql
- MySQL Explain的使用MySqlAI
- MySQL的Join使用MySql
- 【SqlServer】管理全文索引(FULL TEXT INDEX)SQLServer索引Index
- 全文索引——CONTAINS 語法索引AI
- 【Mysql學習】mysql的使用入門MySql
- 【Mysql 學習】mysql 的使用入門MySql
- 基於Java的全文索引引擎Lucene簡介 (轉)Java索引