2016-09-26 54 views
0

我想做一個查詢,選擇字段使用'喜歡',但我不滿意的結果,例如我的註冊說,「木桌工作45」,但如果我的查詢是SELECT * FROM schema1.table1 WHERE描述LIKE 「%work for work%」;什麼都不返回,我不希望用戶需要完全寫「表格工作」或「木桌」來獲得結果。我如何在mysql中做到這一點?

+0

那麼這是否意味着你想要在任何單詞匹配的情況下返回的行? –

+1

考慮使用「全文搜索」 – Rahul

+0

您可能需要全文索引。這是開始這種功能的地方。 –

回答

0

首先創建該列上的全文索引您想查詢這樣:

ALTER TABLE `table1` 
    ADD FULLTEXT INDEX `IndxDescription` (`description`); 

你並不需要運行一個索引後臺程序,MySQL不會把索引/重新索引自動。

FYI:全文被用在InnoDB /只的MyISAM在MySQL 支持參考:http://dev.mysql.com/doc/refman/5.7/en/fulltext-restrictions.html

如果你正在尋找一個更強大的解決方案,可以考慮考慮看看在ElasticSearch:https://github.com/elastic/elasticsearch

+0

謝謝我看看如果這對我有用 – Rchrd