查询问题请教

[复制链接]
查看11 | 回复8 | 2007-9-26 18:42:10 | 显示全部楼层 |阅读模式
我想在我的IP表里查数据,用如下语句,
select * from ip where '211.110.110.2' between startip and endip;
可除了正确结果还显示出一个endip=211.4.114.255的字段,可211.4.114.255明明是比'211.110.110.2'小啊??!!为什么呢?怎么解决?我的startip和endip都是varchar类型
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
211.4.114.255中的4比211.110.110.2'中的110(从左边数的第2组)大啊
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
为什么4比110还大?不太明白!!
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
因为是VCHAR
4 比1大吗(最左面的数字)
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
哦,明白了,那我怎么比较IP地址啊??
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
有没有相关的算法啊?
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
ip不是有4组吗?每个组进行比较
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
你的目的是什么? 好象仅仅用一句SQL写,有点为难
回复

使用道具 举报

千问 | 2007-9-26 18:42:10 | 显示全部楼层
实在不行,用4个字段表示IP地址,例如211.4.114.255
211为字段IP1的内容,4为字段IP2的内容,类推.这样做或许可行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行