-1

我在看MaxMind的这个花絮

SELECT ip_country
FROM geoip
WHERE
INET_ATON('xxx.xx.xxx.xxx') BETWEEN begin_ip_num AND end_ip_num
LIMIT 1

我尝试了几种方法,但似乎 BETWEEN 并没有像我认为它在 postgresql 中所做的那样。

如您所见,我正在尝试根据 IP 确定国家/地区。这里有几行,以防万一这可以更容易地完成:

"223.204.0.0","223.207.255.255","3754688512","3754950655","TH","泰国""223.208.0.0","223.215.255.255","3754950656","3755474943","CN" "中国" "223.216.0.0","223.219.255.255","3755474944","3755737087","JP","日本"

postgres 版本是 9.1 - 忘了添加这个。

4

1 回答 1

3

数据类型inet可能会解决您的问题。只要列类型是textor varchar,数据就会根据您的排序规则像文本一样排序- 这也会影响BETWEEN.

还取决于 PostgreSQL 的版本(排序规则支持是后期添加的)。只要您不提供基本信息,这都是猜测。

于 2012-11-10T12:35:40.657 回答