MySQL和PHP中具有名称的智能最近匹配检测

MySQL和PHP中具有名称的智能最近匹配检测,php,mysql,Php,Mysql,假设我有一个类似下面的MySQL表,其中包含一个组织中的名称列表,以及每个名称的ID id name 1 John Doe 2 Richard Smith 3 Jane Market ... ... 给定的用户将查询此人的名字和/或姓氏(可能会使用打字错误和昵称),php应返回与其查询最接近的匹配项 例如,如果用户输入“ricky”(Richard的昵称),它应该返回Richard Smith的ID。对于昵称,您必须创建一个单独的MySQL

假设我有一个类似下面的MySQL表,其中包含一个组织中的名称列表,以及每个名称的ID

id      name
1       John Doe
2       Richard Smith
3       Jane Market
...     ...
给定的用户将查询此人的名字和/或姓氏(可能会使用打字错误和昵称),php应返回与其查询最接近的匹配项


例如,如果用户输入“ricky”(Richard的昵称),它应该返回Richard Smith的ID。

对于昵称,您必须创建一个单独的MySQL表,并进行查找(多对一关系)


对于输入错误,您必须循环所有名称,并将它们与用户使用函数或函数输入的内容进行比较。用户提供的笔记会有所帮助。

听起来很酷。你尝试过什么?所以你需要为同义词添加新的列。在使用ajax键入5-10个名字时,根据他们迄今为止键入的字母加载他们会更容易,并且可能对用户更有用,而不必担心拼写错误。通过类似的方法可以解决拼写错误。有人添加了额外的字符或名称有点错误。(添加一个J而不是K,但其他所有内容都正确)它将返回数组中接近的内容。不知道你会如何处理同义词或短名称的长名称。