我有兩個表格;Mysql基於從另一個表中選擇更新所有行
mysql> describe ipinfo.ip_group_country;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| ip_start | bigint(20) | NO | PRI | NULL | |
| ip_cidr | varchar(20) | NO | | NULL | |
| country_code | varchar(2) | NO | MUL | NULL | |
| country_name | varchar(64) | NO | | NULL | |
+--------------+-------------+------+-----+---------+-------+
mysql> describe logs.logs;
+----------------------+------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+------------+------+-----+---------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| ts | timestamp | NO | | CURRENT_TIMESTAMP | |
| REMOTE_ADDR | tinytext | NO | | NULL | |
| COUNTRY_CODE | char(2) | NO | | NULL | |
+----------------------+------------+------+-----+---------------------+----------------+
我可以使用IP地址從第一個表中選擇國家代碼:
mysql> SELECT country_code FROM ipinfo.`ip_group_country` where `ip_start` <= INET_ATON('74.125.45.100') order by ip_start desc limit 1;
+--------------+
| country_code |
+--------------+
| US |
+--------------+
在logs.logs,我把所有的REMOTE_ADDR(IP地址)集,但所有COUNTRY_CODE項是空的。現在,我想使用ipinfo表格適當地填充COUNTRY_CODE。我怎樣才能做到這一點?
謝謝!
謝謝。我得到一個錯誤:`mysql> update logs.logs as l,ipinfo.ip_group_country as c set l.COUNTRY_CODE = max(c.country_code)where c.ip_start <= INET_ATON(l.REMOTE_ADDR); 錯誤1111(HY000):無效的組功能使用' – anon 2011-01-27 14:32:46