Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在数据库中搜索时出现键入错误_Mysql_Sql_Database - Fatal编程技术网

Mysql 在数据库中搜索时出现键入错误

Mysql 在数据库中搜索时出现键入错误,mysql,sql,database,Mysql,Sql,Database,我们的应用程序中有数据库,其中包含有关曲目或剧集的信息,如标题、描述等。 假设我有标题“يذب㶋㶋ممدة”,并且用户搜索带有单词“إى”,在阿拉伯语中字母“ا”与“إ”不同,因此搜索不会给我任何结果,因为该单词不存在 如何在包含这些键入错误的同时在数据库中搜索 服务器是php,数据库是mysql。 如果您知道需要查看的指南或帖子,将不胜感激。 对不起,如果这是一个错误的地方问问题。谢谢。使用soundex(列名称)=“搜索词”使用返回的语音分数对这两个单词进行比较这只适用于英语。 Sounde

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

如何在包含这些键入错误的同时在数据库中搜索

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

使用soundex(列名称)=“搜索词”

使用返回的语音分数对这两个单词进行比较这只适用于英语。

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

美国国家档案和记录管理局(NARA)负责美国政府使用的Soundex的正式实施

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

部分示例:

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

-- the underscore in TSQL matches a single character.

通常,“糟糕”的搜索只会一无所获,这是预期的行为。然而,如果您想允许输入错误,您可能需要查看Soundex。在使用这种方法的英语中,“Phil”会同时找到“Phil”和“Fill”等。不幸的是,我需要它,因为我们意识到许多用户正在犯那些导致结果不佳的打字错误。谢谢你的数据库是什么正如我建议的,Soundex呢?当然有阿拉伯语版本的吗?你也可以看看是否有阿拉伯语版本的变音算法。它比Soundex更坚固。除此之外,您可以实现Levenshtein编辑距离算法,但我担心它会非常慢,因为它需要表扫描。尝试一下。可能的话,我会稍后尝试,并在测试后通知您。非常感谢。