2011-05-24 147 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