在数据库中搜索输入错误

时间:2015-12-03 16:12:36

标签: mysql sql database

我们的应用程序中有数据库,其中包含有关曲目或剧集的信息,如标题,说明等。 假设我有标题“يذهبالىالمدرسة”并且用户搜索单词“إلى”,在阿拉伯语中字母“ا”与“إ”不同,因此搜索不会给我任何结果,因为该单词不存在。

如何在包含错误输入的同时搜索数据库?

服务器是php,数据库是mysql。 如果您知道任何指南或帖子要检查,我们将不胜感激。 对不起,如果这是一个错误的地方提问。感谢。

2 个答案:

答案 0 :(得分:0)

使用soundex(column_name)='search_term'

答案 1 :(得分:0)

DIFFERENCE()使用SOUNDEX()返回的拼音分数对这两个单词进行比较。 这仅适用于英语。

Soundex由Robert C. Russell和Margaret King Odell开发,并于1918年和1922年获得专利。Wikipedia

国家档案和记录管理局(NARA)维持the current rule set正式实施美国政府使用的Soundex。

在其他语言中,您必须创建自己的实现来比较两个单词。由于完整的语音实现过于复杂,您可以创建一个函数来比较单词,并使用LIKE运算符来说明位置和可能丢失的字母。

部分示例:

SELECT @IsSimilar = 1 WHERE 'hello' LIKE 'Hel_o'

-- the underscore in TSQL matches a single character.