此答案不适用于 SQL,但确实适用于 街道地址。
如果您愿意依赖第三方,您可以将街道地址发送到SmartyStreets International Street API 服务。
为此,您提交一个HTTP GET 请求。
您的示例地址如下所示:
curl -v 'https://international-api.smartystreets.com/verify?
auth-id=YOUR+AUTH-ID+HERE&auth-token=YOUR+AUTH-TOKEN+HERE&
address1=Dr%20Robert%20Ruberry%2C%20West%20End%20
Medical%20Practice%2C%2038%20Russell%20Street%2C%20
South%20Brisbane%204101
&country=aus'
(请注意,地址是 url 编码的。请求被包装以提高可读性。)
响应将是一个JSON 字符串,分成多个组件,然后您可以根据需要插入到数据库中:
[
{
"organization": "Dr Robert Ruberry, West End Med.",
"address1": "Dr Robert Ruberry, West End Med.",
"address2": "Russell Street",
"address3": "38 Practice",
"address4": "South Brisbane QLD 4101",
"components": {
"administrative_area": "QLD",
"building": "Russell Street",
"country_iso_3": "AUS",
"locality": "South Brisbane",
"postal_code": "4101",
"postal_code_short": "4101",
"thoroughfare": "Practice",
"thoroughfare_name": "Practice",
"sub_building_number": "38"
},
"metadata": {},
"analysis": {
"verification_status": "Partial",
"address_precision": "Locality",
"max_address_precision": "DeliveryPoint"
}
}
]
另一个好处是该服务为您提供有关地址有效性的额外信息。
(披露:我在 SmartyStreets 工作。)