1

我们有页面显示任何给定邮政编码的运费,我正试图将其翻译成网站上的表格,该表格将完成肮脏的工作并为用户提供邮政编码的费用。我去掉了 zip 的最后 2 位数字,因为我不需要它们来查找该区域。我拥有的数据显示了一系列邮政编码。例如,第一个条目是任何以 004 到 006 开头的邮政编码都在 Zone 2 中。

显然,我不想创建我的表,在其中一行中列出“004”、下一行“005”等的数据。有什么好的方法来构建它,以便我可以获取他们输入的 zip并将其与一系列邮政编码进行比较?

我正在使用 PHP 和 sqlite3,但是我无法理解构建它的最佳方法,一旦我这样做了,我就可以毫无问题地对其进行编码。

4

1 回答 1

3

虽然邮政编码包含数字字符,但它作为数字毫无意义 - 您无法将其相加 - 因此您应该将其存储为字符串。

在此基础上,您的邮政编码范围可以与开始和结束范围的字段一起存储......即:

Zone |RangeStart | RangeEnd
   2 |       004 |      006

并将您的邮政编码数据与一个between子句进行比较

select * from address
     inner join zipcoderanges
     on substr(address.zipcode,1,3) between zipcoderanges.RangeStart and zipcoderanges.RangeEnd
于 2012-09-07T20:07:03.963 回答