2011-05-24 153 views
0

我應該用什麼,關鍵字來搜索與MySQL的關鍵詞?搜索與MySQL

我有一個詞並在查詢我

wordless 
something word something 
someword some 
else 
other 
wordother 
thingword 

我想擁有它裏面的文字輸出的一切,但輸出要像第一outputed行是與字行作爲第一例如

無言 - 將成爲第一個,因爲單詞是無字 單詞的第一個字符,輸出到第一個輸出行,然後在它們後面輸出某個單詞的東西等,包含名稱字每一句話,但再次輸出第一,對具有該單詞的行在第一個字符。

編輯:

SELECT *,MATCH(add_songName) AGAINST('d' IN BOOLEAN MODE) as得分FROM songs WHERE MATCH(add_songName) AGAINST('d') ORDER BY得分DESC,我在這裏尋找d,但它給我一個錯誤 -

Can't find FULLTEXT index matching the column list SELECT *,MATCH(add_songName) AGAINST('d' IN BOOLEAN MODE) as `score` FROM songs WHERE MATCH(add_songName) AGAINST('d') ORDER BY `score` DESC 
+1

你嘗試過什麼自己了嗎?有任何代碼?完成任何研究?試過谷歌?到谷歌複製你的文章標題返回了一些非常有用的鏈接.... – martynthewolf 2011-05-24 09:40:19

+0

'場LIKE「%關鍵字%」' – Anne 2011-05-24 09:44:43

+0

「找不到FULLTEXT索引」,然後添加全文索引... – Zyava 2011-05-24 10:24:40

回答

0

嘗試使用Levenshtein算法在MySQL。

的Levenshtein匹配是用於測量兩個序列之間的差異的量的度量,在這裏它是一個字符串。默認情況下MySQL沒有這個功能,但是你可以寫和添加一個。

請看看這裏的代碼,並添加代碼MySQL中的系統功能,請看下面的例子中如何獲得兩個字符串的相似性。

請參閱:https://github.com/rakesh-sankar/Tools/blob/master/MySQL/Levenshtein.txt

例子:
SELECT列1,萊文斯坦(列1, 'matchme')AS perfectmatch FROM sometable ORDER BY perfectmatch DESC