2012-08-24 20 views
0

匹配的話我的字符串,例如:找到一套與MySQL

MatchString = "Renal and Dialysis Technologist and Technician"

我有了一個字段名爲degree_name

舉個例子度的品牌之一表可能是Dialysis Technician

我想嘗試找到包含上面的MatchString的單詞數量 - 也許像2或3匹配 - 是否有一種簡單的方法在mysql中執行此操作 - 如果是的話,代碼將如何?

謝謝!

+0

我對此一無所知,但是當涉及到匹配非確切結果時,我一直認爲[Sphinx](http://en.wikipedia.org/wiki/Sphinx_%28search_engine%29)是要走的路。但我可能會離開... – Travesty3

+1

使用MySQL的[全文搜索函數](http://dev.mysql.com/doc/en/fulltext-search.html),你可以做一些事情,比如'WHERE MATCH( degree_name)反對'腎臟和透析技術專家和技術人員'。 – eggyal

+0

抱歉的混亂 - 當我的意思是2或3匹配我的意思是2或3字匹配的原始MatchString - 不是2或3記錄 – 99823

回答

1

您將在布爾模式下以全文搜索獲得良好結果。首先確保你的表是MyISAM,在degree_name上有全文索引。那麼這個查詢將返回火柴,字數符合MatchString

SELECT degree_name, 
MATCH (degree_name) 
AGAINST ('Renal and Dialysis Technologist and Technician' IN BOOLEAN MODE) FROM degrees 
WHERE MATCH (degree_name) 
AGAINST ('Renal and Dialysis Technologist and Technician' IN BOOLEAN MODE) 
0

我會使用,其中類似「透析技術員%」,會給你一個兩個字的匹配。如果你想要三個,你需要添加額外的單詞。 %在文本之後尋找通配符,所以如果您希望在透析技術員之前看到信息,如果需要看起來像這樣:WHERE LIKE'%Dialysis Technician'。