用的mySQL数据库吧。 告诉你3个语法(函数) 1. insert into Table_A field1,...fieldn select fieldA,...fieldN from Table_B,可以将查询结果加入Table_A中。 2. update table1 a, table2 b set a.field1= b.field2 where a.field3=b.field4 可以实现关联表的修改。 3. SUBSTRING_Index, substring_index('123.456.78','.',2)返回"123。456",substring_index('123.456.78','.',-2)返回"456.78", 最后,varchar字符串"124"是可以直接赋值到int型field上的。临时建几张表存放中间结果,用不着多说了把。
SET StartIPNum =
cast(left(startip,charIndex('.',StartIP)-1) as bigint) * power(2,24)
+ cast(left( right( StartIP , Len(StartIP) - charIndex('.',StartIP) ),
charIndex('.', right(StartIP,Len(StartIP)-charIndex('.',StartIP)))-1
) as bigint) * power(2,16)
+ cast(left( right(startip,Len(StartIP)-charIndex('.', StartIP,charIndex('.',StartIP)+1)),charIndex('.',right(startip,Len(StartIP)-charIndex('.', StartIP,charIndex('.',StartIP)+1)))-1)
as bigint) * 256
+ cast (right( startIP,LEN(StartIP)-charIndex('.',startIP,charIndex('.',startIP,charIndex( '.',startip)+1)+1 ) ) as bigint) , EndIPNum =
cast(left(endip,charIndex('.',endip)-1) as bigint) * power(2,24)
+ cast(left( right( endip , Len(endip) - charIndex('.',endip) ),
charIndex('.', right(endip,Len(endip)-charIndex('.',endip)))-1
) as bigint) * power(2,16)
+ cast(left( right(endip,Len(endip)-charIndex('.', endip,charIndex('.',endip)+1)),charIndex('.',right(endip,Len(endip)-charIndex('.', endip,charIndex('.',endip)+1)))-1)
as bigint) * 256
+ cast (right(endip,LEN(endip)-charIndex('.',endip,charIndex('.',endip,charIndex( '.',endip)+1)+1 )) as bigint)
历时6秒,影响70004行,很快吧。
刚刚我为了测试还特意建了个70000多条记录的数据库
告诉你3个语法(函数)
1. insert into Table_A field1,...fieldn select fieldA,...fieldN from Table_B,可以将查询结果加入Table_A中。
2. update table1 a, table2 b set a.field1= b.field2 where a.field3=b.field4 可以实现关联表的修改。
3. SUBSTRING_Index, substring_index('123.456.78','.',2)返回"123。456",substring_index('123.456.78','.',-2)返回"456.78",
最后,varchar字符串"124"是可以直接赋值到int型field上的。临时建几张表存放中间结果,用不着多说了把。