用mysql搜索关键字

时间:2011-05-24 09:35:55

标签: php mysql

我应该使用什么来搜索mysql的关键字?

我有一个词,在查询中我有

wordless
something word something
someword some
else
other
wordother
thingword

我想输出里面包含单词的所有内容,但输出就像第一个输出的行一样,那些行以word作为第一个字母,例如

无言 - 将是第一个因为单词是无字单词的第一个字符 和wordother一起输出到第一个输出的行,然后在它们之后输出一些东西等等,每个包含名字的单词,但是再次输出那些在第一个字符处有单词的行。

编辑:

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 个答案:

答案 0 :(得分:0)

尝试在MySQL中使用Levenshtein算法。

Levenshtein匹配是用于测量两个序列之间的差异量的度量,这里是字符串。默认情况下,MySQL没有此功能,但您可以编写并添加一个。

请查看此处的代码并将该代码添加为MySQL中的系统函数,请参阅下面的示例,了解如何获得两个字符串的相似性。

请参阅:https://github.com/rakesh-sankar/Tools/blob/master/MySQL/Levenshtein.txt

  

例:
  SELECT column1,LEVENSHTEIN(column1,'matchme')AS perfectmatch FROM sometable ORDER BY perfectmatch DESC