如何解决用mysql搜索关键字
| 我应该使用什么来用mysql搜索关键字? 我有一个字,在查询中我有wordless
something word something
someword some
else
other
wordother
thingword
我想输出其中包含单词的所有内容,但是输出类似于首先输出的行,例如,将单词作为第一个字母的行
无语-将是第一个,因为单词是无语单词的第一个字符
另一个单词other将被输出到第一个输出的行,然后在它们之后输出某些单词之类的东西,等等,每个包含名称单词的单词,但再次首先输出在第一个字符处包含该单词的行。
编辑:
SELECT *,MATCH(add_songName) AGAINST(\'d\' IN BOOLEAN MODE) as
scoreFROM songs WHERE MATCH(add_songName) AGAINST(\'d\') ORDER BY
scoreDESC
,这里我正在搜索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
解决方法
尝试在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。