我们在我们的应用程序中有数据库,其中包含有关曲目或剧集的信息,如标题,描述...etc。假设我的标题是“يذهبالىالمدرسة",用户搜索的是单词”إلى",在阿拉伯语中,字母“ا”不同于“إ”,因此搜索不会给我任何结果,因为这个单词不存在。
如何在数据库中搜索,同时包含那些打字错误?
服务器为php,数据库为mysql。如果你知道任何指南或帖子可以查看,将不胜感激。抱歉,如果这不是问问题的地方。谢谢。
发布于 2015-12-04 00:21:59
Use soundex(column_name) = 'search_term‘
发布于 2015-12-04 01:27:54
DIFFERENCE()使用SOUNDEX()返回的拼音分数对这两个单词进行比较。此选项仅适用于英语。
Soundex是由罗伯特·C·罗素和玛格丽特·金·奥德尔开发的,并于1918年和1922年获得专利。Wikipedia
美国国家档案和记录管理局(NARA)为美国政府使用的Soundex的正式实施维护the current rule set。
在其他语言中,您必须创建自己的实现来比较两个单词。由于完整的语音实现过于复杂,因此您可以创建一个函数,在该函数中比较一个单词,并使用LIKE运算符说明该位置和可能缺少的字母。
部分示例:
SELECT @IsSimilar = 1 WHERE 'hello' LIKE 'Hel_o'
-- the underscore in TSQL matches a single character.https://stackoverflow.com/questions/34070864
复制相似问题