【发布时间】:2011-08-03 00:05:31
【问题描述】:
我有 2 个 MySQL 表,每个表中都有公司的地址数据。一张桌子较新,但没有电话,也没有网站数据。现在我想将这些表合并为 1 个最近的和完整表。
但是对于一些公司来说,单词的顺序是不同的,像这样:
'Bakery Johnson' 在表 1 中,'Johnson Bakery' 在表 2 中。
现在我需要找到一种方法来比较这些值,因为它们显然是同一家公司。
我想我将不得不先拆分这些名称,然后按字母顺序排列不同的部分。
有没有人以前做过类似的事情,并愿意分享一些代码或功能?
更新: 我找到了一个对字符串中的单词进行排序的函数。如上所述,我可以使用它来检测名称交换。虽然速度很慢......
见:MySQL: how to sort the words in a string using a stored function?
【问题讨论】:
-
“他们显然是同一家公司”我不同意。我听说过的每个国家/地区的法律也是如此。
-
嗯,这些值来自 2 个不同的黄页之类的来源,它们之间存在类似的差异...有些指南更喜欢使用不同的名称以便于排序,我猜...
-
这非常模棱两可。是什么定义了这两个字符串实际上是否代表同一个实体?在跳到这样的要求之前,我想对每个数据源的表示语义进行一些分析。
-
我还比较了邮政编码。一张桌子没有电话号码,否则这当然是比较的最佳方式......我认为比较邮政编码时的误差范围也很低