我在数据库中有一个名为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;写入更新查询他们的示例查询中的标识符。
答案 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)