比如在表A中有一个地址字段(字符串类型),那么,如何实现查找地址类似的记录?
比如:
id | name | address
1 | tom | 黄河1路 391号
2 | jack | 黄河1路 391号 东
3 | jerry | 长江路23号
tom和jack的地址是类似的,查找出tom和jack这两条记录的明细。
数据库环境为oracle
可以使用函数 UTL_MATCH.edit_distance_similarity
select A1.address,A2.address,UTL_MATCH.edit_distance_similarity(A1.address,A2.address) similarity from A A1, A A2 where A1.address is not null and A2.address is not null and similarity >=30;
30只是个相似度值,可以酌情调整,最大100。
配合group by,order by使用更佳。
我们以前都是让用户在地图上标记一下,然后存放的是经纬度
,地址是他自己填写的。
然后判断两个地方距离是否是一个地方是计算欧式距离
的,不知你们的需求可否考虑这种方式。