我无法弄清楚,如果可能强制mysql在选择查询中选择结果时将某些指定的字符串视为相同。MYSQL强制模式匹配
例如,我有一个包含单词“trachiotomy”的列,但由于该语言的性质,很可能搜索查询将是“trahiotomy”(注意c缺失)。
有什么办法可以强制查询识别任何字母的模式? 例如,要将“ach”字母序列的单词内的任何实例与“ah”匹配 - 反之亦然。不管它是如何写的,本质上都是强制它。
另一个例子是Archon这个词 - 我想和Arhon一样。 因此,如果用户输入是Archon,它将匹配数据库数据Arhon,反之亦然。
我用soundex做了一点实验,它确实匹配了一些实例,但似乎由于算法的工作原理,它无法在所需匹配字符串位于单词开头的情况下执行。
例如,单词“Chorevo”不能匹配单词“Horevo”,除非我能以某种方式迫使它认为“chor”等于“hor”,反之亦然。
我正在读入REGEXP,看它是否可以如此匹配。 (类似于 REGEXP'arch','arh')
此时我正在使用全文匹配查询,但如果证明这是一个问题,则可能会更改该查询。
我不确定我是否明确表示过,但希望得到任何帮助。
能一莱文斯坦algoritm使用吗?喜欢的东西:http://www.artfulsoftware.com/infotree/queries.php#552 – 2012-02-08 18:04:08
我测试了levenstein(自定义函数),但它似乎无法用这些类型的单词覆盖问题(特别是在c尽管它们在语音上相似,但是我会做出另一次尝试,因为我没有深入研究,因为它对于大型数据集似乎有点慢。 – Larry 2012-02-08 19:35:58