3
我有一个MySQL表设置如下:匹配IP地址与IP范围?
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| ipaddress_s | varchar(15) | YES | MUL | NULL | |
| ipaddress_e | varchar(16) | YES | | NULL | |
+---------------+-------------+------+-----+---------+----------------+
其中,ipaddress_s和ipaddress_e看起来像:4.100.159.0-4.100.159.255
现在是有办法,我居然能拿到一行包含给定的IP地址?例如,给定IP地址:“4.100.159.5”,我想要返回上面的行。
SELECT * FROM ranges WHERE ipaddress_s<"4.100.159.5" AND ipaddress_e>"4.100.159.5"
任何建议:所以我想对于一个查询,看起来是这样的(因为在下面我正在考虑IP地址为字符串,但当然这是错误的)?
谢谢!甚至不知道这些功能存在! – Legend 2010-04-24 03:17:18
是......如果性能是一个问题,你可能首先将地址作为整数存储在数据库中。 – WhirlWind 2010-04-24 03:25:56
是的..在删除此表并创建一个新的过程:) – Legend 2010-04-24 03:42:49