码迷,mamicode.com
首页 > 数据库 > 详细

sql准确判断某个ip

时间:2017-05-12 18:49:26      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:ima   begin   end   charindex   logs   create   like   returns   ret   

问题:如图

技术分享

当我执行sql要准确查找某个IP是属于哪个库室时候,我刚开始是这样写的

select * from Definition_Read_Room where HFIP like %172.20.139.71%

然后这样来查会出现一个问题,当查找的是172.20.139.7这个ip时候,如果HFIP里面存在

172.20.139.71或则172.20.139.712等的,会不能准确的找到该IP详细属于哪个库室,所以需要写一个sql函数,如下:

create function f_split(@c varchar(2000),@split varchar(2)) 
returns @t table(col varchar(20)) 
as 
    begin 
    
      while(charindex(@split,@c)<>0) 
        begin 
          insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) 
          set @c = stuff(@c,1,charindex(@split,@c),‘‘) 
        end 
      insert @t(col) values (@c) 
      return 
    end 
go 

然后执行该函数,重新写sql,如下:

select * from Definition_Read_Room where 172.20.139.71 in (select * from dbo.f_split(HFIP,,))

 

sql准确判断某个ip

标签:ima   begin   end   charindex   logs   create   like   returns   ret   

原文地址:http://www.cnblogs.com/luoxiaozhao/p/6846457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!