gpt4 book ai didi

mysql - 在 MySql 中快速搜索邮政编码

转载 作者:行者123 更新时间:2023-11-29 12:39:07 24 4
gpt4 key购买 nike

我有一个 MySQL 花店表,我正在尝试编写一个搜索函数,它将以邮政编码作为输入,并找到所有提供该邮政编码的花店。我的表中的每个花店记录有 3 项

  • 地理编码经度(以花店地址为中心)
  • 地理编码纬度(以花店地址为中心)
  • 花店送货的城镇名称和邮政编码的字符串字段例如- 波士顿(02215、02108、02109)、切尔西(02150)、萨默维尔(02143、02144、02145)

假设我想找到所有向“02108”送货的花店。在 MySQL 中实现此搜索的最佳方法是什么?

我在想

  1. 精确匹配搜索 - 但这需要每次搜索都扫描整个 table 。效率低下?

  2. 半正矢搜索 + 精确匹配 - 使用纬度/经度值将搜索范围缩小到 15 英里半径

    MySQL Great Circle Distance (Haversine formula)然后在这些结果中执行精确匹配。

  3. 还有什么吗?

非常感谢您的想法和意见。

最佳答案

正确的方法是将邮政编码列表表示为联结表,每个花店一行,每个邮政编码一行。因此,您的第一家花店可能有这些行:

FloristId   Zip
1 02215
1 02108
1 02109
1 02150
1 02143
1 02144
1 02145

然后,在 zip 列上构建索引。然后,您可以使用简单的联接来获取向特定邮政编码送货的花店。

您可以使用引用表来查找主要城镇的邮政编码。美国人口普查局拥有从邮政编码列表区域到城镇名称的映射。美国邮政局可能有类似的东西。

关于mysql - 在 MySql 中快速搜索邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26367970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com