¤Þ¤È¤á ¥Ö¥í¥° ¥À¥¦¥ó¥í¡¼¥É ·Ç¼¨ÈÄ ¥á¡¼¥ë

¤ì¤Ö¤í¤°

< 2007-12-12 (¿å) 2007-12-16 (Æü) > ºÇ¿·


2007-12-13 (ÌÚ)

¢£ Í¹ÊØÈÖ¹æ ¢ª ÅÔÆ»Éܸ© ¤Î¸¡º÷¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤Ã¤Æ¹Ô¤¦

»Ô¶èĮ¼̾¤Þ¤Çʬ¤«¤ë¤è¤¦¤Ë¤·¤¿Êý¤¬¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ ¤Þ¤º¤Ï Í¹ÊØÈÖ¹æ ¢ª ÅÔÆ»Éܸ©¥³¡¼¥É (ÅÔÆ»Éܸ©Ì¾) ¤È¤¤¤¦¤È¤³¤í¤Þ¤Ç¤ò¡¢ MySQL ¤ò»È¤Ã¤Æ¤ä¤Ã¤Æ¤ß¤ë¡£

1. Á´¹ñÃÏÊý¸ø¶¦ÃÄÂÎ¥³¡¼¥É(JIS X0401¡¢X0402)¡Ä¡Ä¡Ä¡¡È¾³Ñ¿ô»ú
2. (µì)Í¹ÊØÈÖ¹æ(5·å)¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡¡È¾³Ñ¿ô»ú
3. Í¹ÊØÈÖ¹æ(7·å)¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡Ä¡¡È¾³Ñ¿ô»ú
4. ......

¡¦³Æ¹àÌܤϡ¢È¾³Ñ¤Î¡Ö,¡×(¥«¥ó¥Þ)¤Ç¶èÀڤäƤª¤ê¡¢¾åµ­¤Î2)¡Á9)¤Þ¤Ç¤Î¹àÌܤϡÖ"¡×(¥À¥Ö¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó)¤Ç°Ï¤ó¤Ç¤¤¤Þ¤¹¡£

Á´¹ñÃÏÊý¸ø¶¦ÃÄÂÎ¥³¡¼¥É¤Î¾å£²·å¤¬ JIS X 0401 ¤ÇÄê¤á¤é¤ì¤¿ÅÔÆ»Éܸ©¥³¡¼¥É¤È¤Î¤³¤È¤Ê¤Î¤Ç¡¢ ¤Þ¤º¡¢Í¹ÊØÈÖ¹æ¥Ç¡¼¥¿¤«¤éÍ¹ÊØÈÖ¹æ¤ÈÅÔÆ»Éܸ©¥³¡¼¥É¤À¤±¤òÈ´¤­½Ð¤¹¡£ PHP 5 ¤Ê¤é¡¢¤³¤ó¤Ê¥³¡¼¥É¤Ç½èÍý¤Ç¤­¤ë¡£

<?php

$lines = file('KEN_ALL.CSV');

$data = '';
foreach ($lines as $line) {
    $zipcode  = substr($line, 15, 7);
    $jisx0401 = substr($line, 0,  2);
    $data .= $zipcode . ',' . $jisx0401 . "\n";
}

file_put_contents('zip.csv', $data);

?>

¤¿¤À¤·¡¢¸µ¤ÎÍ¹ÊØÈÖ¹æ¥Ç¡¼¥¿¤Ë¤Ï¡¢

05201,"011  ","0110951", ... ,"½©Åĸ©","½©ÅÄ»Ô","ÅÚºê¹ÁÁêÀ÷Ä®",0,1,0,1,0,0
05201,"011  ","0110951", ... ,"½©Åĸ©","½©ÅÄ»Ô","ÅÚºê¹Á¸ÅÀîÄ®",0,1,0,1,0,0

¤Î¤è¤¦¤ËƱ¤¸Í¹ÊØÈÖ¹æ¤Î¹Ô¤¬¤¢¤ë¤¿¤á¡¢¤³¤Î¥Ç¡¼¥¿¤Ë¤Ï½ÅÊ£¤¹¤ë¹Ô¤¬´Þ¤Þ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¡£ ¤½¤³¤Ç¡¢sort ¤È uniq ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ½ÅÊ£¹Ô¤ò½ü¤¯¡£

$ sort zip.csv | uniq > zip2.csv

¤È¤³¤í¤¬¡¢£±¤Ä¤ÎÍ¹ÊØÈֹ椬£²ÅÔÆ»Éܸ©¤Ë¤Þ¤¿¤¬¤ëÎã ¤¬¤¢¤ë¤Î¤Ç¡¢ ¤³¤ì¤Ç¤â¤Þ¤ÀÍ¹ÊØÈֹ椬½ÅÊ£¤·¤Æ¤¤¤ë²Õ½ê¤¬¤¢¤ë¡£ ¤½¤³¤Ç¡¢ºòÆüÄ´¤Ù¤¿·ë²Ì ¤ò´ð¤Ë¡¢

24303,"498  ","4980000", ... ,"»°½Å¸©","·¬Ì¾·´ÌÚÁ¾Ì¨Ä®","°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç",0,0,0,1,0,0
27301,"618  ","6180000", ... ,"ÂçºåÉÜ","»°Åç·´ÅçËÜÄ®","°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç",0,0,0,1,0,0
40642,"871  ","8710000", ... ,"Ê¡²¬¸©","Ã۾巴µÈÉÙÄ®","°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç",0,0,0,1,0,0

¤³¤Î£³¤Ä¤Ë³ºÅö¤¹¤ë¹Ô¤ò¼è¤ê½ü¤¯¤³¤È¤Ë¤¹¤ë¡£

$ grep -v -e 4980000,24 -e 6180000,27 -e 8710000,40 zip2.csv > zipcode.csv

¤³¤ì¤Ç¡¢É¬Íפʥǡ¼¥¿¤À¤±È´¤­½Ð¤·¤¿ CSV ¥Õ¥¡¥¤¥ë¤¬¤Ç¤­¤¿¡£


¼¡¤Ë¡¢ÅÔÆ»Éܸ©¥³¡¼¥É¤ÈÅÔÆ»Éܸ©Ì¾¤È¤òÂбþ¤Å¤±¤ë¤¿¤á¤Ë¡¢ °Ê²¼¤Î¤è¤¦¤Ê CSV ¥Õ¥¡¥¤¥ë¤òºî¤Ã¤Æ¤ª¤¯¡£

  • JISX0401.csv
01,Ë̳¤Æ»
02,ÀÄ¿¹¸©
03,´ä¼ê¸©
04,µÜ¾ë¸©
05,½©Åĸ©
06,»³·Á¸©
07,Ê¡Å縩
08,°ñ¾ë¸©
09,ÆÊÌÚ¸©
10,·²Çϸ©
11,ºë¶Ì¸©
12,ÀéÍÕ¸©
13,ÅìµþÅÔ
14,¿ÀÆàÀ
15,¿·³ã¸©
16,ÉÙ»³¸©
17,ÀÐÀ
18,Ê¡°æ¸©
19,»³Íü¸©
20,ĹÌ
21,´ôÉ츩
22,ÀŲ¬¸©
23,°¦Ãθ©
24,»°½Å¸©
25,¼¢²ì¸©
26,µþÅÔÉÜ
27,ÂçºåÉÜ
28,ʼ¸Ë¸©
29,ÆàÎɸ©
30,Ï²λ³¸©
31,Ä»¼è¸©
32,Å纬¸©
33,²¬»³¸©
34,¹­Å縩
35,»³¸ý¸©
36,ÆÁÅ縩
37,¹áÀ
38,°¦É²¸©
39,¹âÃθ©
40,Ê¡²¬¸©
41,º´²ì¸©
42,Ĺºê¸©
43,·§Ëܸ©
44,Âçʬ¸©
45,µÜºê¸©
46,¼¯»ùÅ縩
47,²­Æì¸©

ºÇ¸å¤Ë¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿¤ò MySQL ¤ËÊü¤ê¹þ¤à¡£ °Ê²¼¤Î SQL ¤ò¼Â¹Ô¤·¡¢¥Æ¡¼¥Ö¥ë¤òºîÀ®¡£

CREATE TABLE `zipcode` (
  `id` int(7) unsigned zerofill NOT NULL default '0000000',
  `jisx0401` tinyint(2) unsigned zerofill NOT NULL default '00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;

CREATE TABLE `jisx0401` (
  `id` tinyint(2) unsigned zerofill NOT NULL default '00',
  `name` varchar(4) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;

CSV ¥Õ¥¡¥¤¥ë¤«¤é¥Æ¡¼¥Ö¥ë¤Ë¥Ç¡¼¥¿¤ò¥¤¥ó¥Ý¡¼¥È¡£

mysql> USE ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾;
mysql> LOAD DATA INFILE "/home/revulo/zipcode.csv" INTO TABLE zipcode FIELDS TERMINATED BY ',';
mysql> LOAD DATA INFILE "/home/revulo/JISX0401.csv" INTO TABLE jisx0401 FIELDS TERMINATED BY ',';

ư¤¯¤«¤É¤¦¤«³Îǧ¡£

mysql> SELECT zipcode.id, jisx0401.name FROM zipcode, jisx0401
    -> WHERE zipcode.jisx0401=jisx0401.id AND zipcode.id=1000001;
+---------+-----------+
| id      | name      |
+---------+-----------+
| 1000001 | ÅìµþÅÔ    |
+---------+-----------+
1 row in set (0.00 sec)

¤¢¤È¤Ï¡¢¤³¤ì¤ËÁêÅö¤¹¤ë SQL ¤ò¼Â¹Ô¤·¤Æ¤¯¤ì¤ë¥×¥í¥°¥é¥à¤ò¡¢Å¬Åö¤Ë½ñ¤±¤Ð¤è¤¤¡£

Tags: zipcode MySQL | ¤³¤Î¥¨¥ó¥È¥ê¤ò´Þ¤à del.icio.us | ¤³¤Î¥¨¥ó¥È¥ê¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ | ¤³¤Î¥¨¥ó¥È¥ê¤ò´Þ¤à livedoor ¥¯¥ê¥Ã¥× | Permalink
ËÜÆü¤Î¥ê¥ó¥¯¸µ

ÊÔ½¸