我在一个名为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,1ip2nation是他们可以在网站上下载的表格。它有两个列
ip | country我希望能够对数据库中的所有值(100 K)运行一个更新查询,以便将我必须的ip_number转换为国家代码( ip2nation表中的country列)。我将如何做到这一点,因为我不知道如何用他们的示例查询中的<标识符来编写更新查询。
发布于 2013-10-24 12:56:11
如果数据库具有范围(例如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)https://stackoverflow.com/questions/19566238
复制相似问题