我应该使用什么来搜索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
答案 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