直接上代码
例如表test中有一个字段如下
F_URL
www.baidu.com
http://192.168.10.5/default.aspx
....
现在给出一个起始ip地址如:10.4.4.0 和 一个结束地址如:192.168.10.254。
现在要查找test表中F_URL字段中包含了给定地址范围内的所有行sql

解决方案 »

  1.   

    当整数也不行,如何与F_URL中的ip比较。
    例如
    https://192.168.1.0/default.aspx这个URL中的IP地址就在10.4.4.0-192.168.10.254之间。
    怎么写这个SQL语句来查询出F_URL中所有这样的行。
      

  2.   

    谢谢这位兄弟了,我自己解决了
    下面把代码分享一下DECLARE @IPStart nvarchar(50);
    DECLARE @IPEnd nvarchar(50);
    SET @IPStart = '10.4.4.0';
    SET @IPEnd = '192.168.10.254';-- 构造查询字符串
    DECLARE @IPSTR nvarchar(500);
    SET @IPSTR = '%[' + parsename(@IPStart, 4) + '-' + parsename(@IPEnd, 4) + '].';
    SET @IPSTR += '[' + parsename(@IPStart, 3) + '-' + parsename(@IPEnd, 3) + '].';
    SET @IPSTR += '[' + parsename(@IPStart, 2) + '-' + parsename(@IPEnd, 2) + '].';
    SET @IPSTR += '[' + parsename(@IPStart, 1) + '-' + parsename(@IPEnd, 1) + ']%';SELECT F_URL FROM test WHERE F_URL LIKE @IPSTR;