使用ip2nation IP值更新mysql查询

时间:2013-10-24 12:41:07

标签: mysql

我在数据库中有一个名为tbl1的表,在此我将IP地址转换为长数,以便我可以使用ip2nations数据库对它们进行比较。例如,我有

ip           | ip_number    |   country code
27.33.41.150 | 455158166    |

然后我下载了ip2nation数据库并将其添加到我的数据库中。他们将号码转换为国家的例子就是这个

SELECT country 
FROM ip2nation 
WHERE ip < 455158166
ORDER BY ip DESC 
LIMIT 0,1

ip2nation是他们可以在他们的网站上下载的表格。它有2列

ip         |  country

我希望能够对我在数据库中的所有值(100k)运行更新查询,以将我拥有的ip_number转换为国家/地区代码(ip2nation表中的country列)。我怎么做这个,因为我不知道如何用&lt;写入更新查询他们的示例查询中的标识符。

1 个答案:

答案 0 :(得分:0)

如果您拥有带范围的数据库会更好,例如ip_start,ip_end,然后您可以选择ip位于这些ip_start和ip_end之间的国家/地区,但是对于您的示例,您可以这样更新表

UPDATE your_table t
SET t.country_code =
   (SELECT i.country
      FROM ip2nation i
     WHERE i.ip < t.ip
     ORDER BY i.ip DESC LIMIT 0, 1)