我的问题是我的表中有重复的条目。然而,事情并非那么简单。有些是有效的副本,有些则不是。例如,E Pearl River, NY
和East Pearl River, NY
是同一个城市,而Bardonia, NY
和Nanuet, NY
则不是。因此,如果我删除所有重复项,它将删除像Bardonia这样的有效城市。
我的问题是,有没有人知道循环每一行的方式(用SQL或任何编程语言)并执行以下操作:
city
是否有部分匹配(即E 珠江,纽约和东珠江,纽约)city
(即Bardonia,NY和Nanuet,NY)没有部分匹配,请继续前进。+—————————+——————————————————————+
| zipcode | city |
+—————————+——————————————————————+
| 10956 | E Pearl River, NY |
| 10956 | East Pearl River, NY |
| 10977 | Spring Valley, NY |
| 10954 | Bardonia, NY |
| 10954 | Nanuet, NY |
+—————————+——————————————————————+
+—————————+——————————————————————+
| zipcode | city |
+—————————+——————————————————————+
| 10956 | East Pearl River, NY |
| 10977 | Spring Valley, NY |
| 10954 | Bardonia, NY |
| 10954 | Nanuet, NY |
+—————————+——————————————————————+
非常感谢任何帮助!
答案 0 :(得分:0)
您的问题没有简单的解决方案,因为它涉及自然语言处理。
如何定义纽约珠江河 东珠江,纽约?东珠江和西珠江怎么样?对于自然语言处理,您应该查看Lucene或MySQL Full-Text Search。
对于相当简单(但不一定非常准确)的解决方案,您可以尝试实施简单的Levenshtein distance度量。