郵便番号や市区町村データを取り扱うときにはまったこと

今とりかかってる案件で、郵便番号から自治体を特定して云々という処理をやっているんですが、いくつかはまりポイントがあったので備忘録的にポストしときます

自治体コードは6桁のものと5桁のものがある

これはすごく単純なお話で6桁のものは最後の1桁はチェックディジット
残りの上5桁から機械的に計算できます

郵便番号は必ず1つの町名に紐づいているわけではない

郵便番号→住所入力というフォームを作るときにハマる
例)郵便番号 807-0042
福岡県 遠賀郡水巻町 吉田
福岡県 遠賀郡水巻町 吉田団地

私の住んでいる宮城県にも
例)郵便番号 981-2114
宮城県 伊具郡丸森町 赤堀
宮城県 伊具郡丸森町 泉
宮城県 伊具郡丸森町 泉下
宮城県 伊具郡丸森町 大目
宮城県 伊具郡丸森町 北前
宮城県 伊具郡丸森町 天王

合併で旧・西春日井郡春日町を編入した愛知県清須市にこういうすさまじいデータがあります
例)郵便番号 452-0961
愛知県 清須市 春日明河原
愛知県 清須市 春日一番割
愛知県 清須市 春日壱屋敷
愛知県 清須市 春日一本松
愛知県 清須市 春日稲荷
愛知県 清須市 春日杁前
愛知県 清須市 春日午
愛知県 清須市 春日落合
愛知県 清須市 春日上丑
愛知県 清須市 春日上川畑
愛知県 清須市 春日上河原
愛知県 清須市 春日上須ケ田
愛知県 清須市 春日上高畑
愛知県 清須市 春日上堤クロ
愛知県 清須市 春日上中割
愛知県 清須市 春日河原
愛知県 清須市 春日桑
愛知県 清須市 春日小塚西
愛知県 清須市 春日小塚南
愛知県 清須市 春日小松生
愛知県 清須市 春日郷裏
愛知県 清須市 春日郷前
愛知県 清須市 春日三番割
愛知県 清須市 春日下丑
愛知県 清須市 春日下河原
愛知県 清須市 春日下堤クロ
愛知県 清須市 春日下中割
愛知県 清須市 春日新田畑
愛知県 清須市 春日新堀
愛知県 清須市 春日新堀北
愛知県 清須市 春日定ノ割
愛知県 清須市 春日須ケ田
愛知県 清須市 春日須ケ畑
愛知県 清須市 春日大河戸
愛知県 清須市 春日高畑
愛知県 清須市 春日堤クロ
愛知県 清須市 春日寺廻り
愛知県 清須市 春日樋
愛知県 清須市 春日酉
愛知県 清須市 春日中河原
愛知県 清須市 春日長畑
愛知県 清須市 春日西須ケ畑
愛知県 清須市 春日西牧前
愛知県 清須市 春日西牧南
愛知県 清須市 春日西余部
愛知県 清須市 春日二番割
愛知県 清須市 春日弐屋敷
愛知県 清須市 春日野方
愛知県 清須市 春日八幡
愛知県 清須市 春日八幡裏
愛知県 清須市 春日八幡前
愛知県 清須市 春日八幡南
愛知県 清須市 春日東小塚
愛知県 清須市 春日東須ケ畑
愛知県 清須市 春日東出
愛知県 清須市 春日二ツ池
愛知県 清須市 春日振形
愛知県 清須市 春日堀田
愛知県 清須市 春日宮越
愛知県 清須市 春日宮重
愛知県 清須市 春日宮重町
愛知県 清須市 春日向河原
愛知県 清須市 春日屋敷
愛知県 清須市 春日夢の森
愛知県 清須市 春日四番割
愛知県 清須市 春日蓮花寺前

市区町村をまたいで同じ郵便番号を持つケースがある

政令指定都市や隣同士の町などによくあるパターン
前者の理由の場合は同じ町名なのに区が違うなどで、仙台市でも五橋という地名が1~2丁目は青葉区、3丁目は若林区などの例があります(仙台市の場合、区によって郵便番号の頭の98xのところが違うのでこのケースにははまらない)

例)
郵便番号 950-0000
新潟県 新潟市北区
新潟県 新潟市東区
新潟県 新潟市中央区
新潟県 新潟市江南区
新潟県 新潟市西区
新潟県 新潟市西蒲区

郵便番号 432-8053
静岡県 浜松市中区 法枝町
静岡県 浜松市南区 法枝町

郵便番号 907-0000
沖縄県 石垣市
沖縄県 八重山郡竹富町

市区町村はおろか県を飛び越えて同じ郵便番号を持ちうるケースがある

おそらく県境などで地理的・文化的な理由で集配局が同じケースじゃないかなというところで、こちらはレアながら3件あります

いずれも「以下に記載がない場合」のデータですがそこに該当する住所もあるわけで除外するわけにはいかない

郵便番号 498-0000
愛知県 弥富市
三重県 桑名郡木曽岬町

郵便番号 618-0000
京都府 乙訓郡大山崎町
大阪府 三島郡島本町

郵便番号 871-0000
福岡県 築上郡吉富町
大分県 中津市