我的客户有一个跨越400年的房地产记录数据库。他们有兴趣根据用户的数据向用户提出其他拼写建议。
我假设在这种情况下,该表将落在一个表上,该表具有用于“ Martin”的行以及对“ Martyn”和“ Martine”的建议等。
有谁知道将索引其数据的第三方解决方案?
编辑
每个魔术师的答案都震撼了SOUNDEX()!
SOUNDEX()
SELECT `Last` FROM `Names` WHERE SOUNDEX(`Last`) RLIKE SOUNDEX ('Martin') GROUP BY `Last`
产生这个漂亮的小清单:
Martens Martenstein Martin Martina Martindale Martine Martineau Martines Martinet Martinez Martini Martino Martinstein Mertens Miradona Moret and Marchand Mortimer Morton
过去,我设法实现了与SOUNDEX类似的功能,可以近似实现该功能。
马丁(Martin),马丁(Martyn)和马丁(Martine)从产生相同的输出SOUNDEX。
SOUNDEX
您可以包括SOUNDEX比赛的所有结果,也可以选择他们要求的结果,然后select distinct name from table where SOUNDEX(name) = SOUNDEX(search_var)作为您的“建议”。
select distinct name from table where SOUNDEX(name) = SOUNDEX(search_var)
作为一种优化,您可以在搜索字段上预先计算SOUNDEX并将其保留为索引列,以避免进行表扫描。