SQL命令中的IP地址模式

时间:2011-04-26 21:18:23

标签: sql-server ip-address sql-like

我想在nvarchar列中选择包含IP地址的行。什么是正确的where声明?

SELECT * FROM tblUrl WHERE ... (Url contains an IP address)

2 个答案:

答案 0 :(得分:4)

在数据库中编码IP地址的“通常方法”是:

  • 192.168.001.010(注意填充“0”) 或
  • 作为整数(((192 * 256)+ 168)* 256 + 1)* 256 +10

这两种格式都允许您在一个时间间隔内快速匹配ip:

SELECT * FROM tblURL where URL > "192.168.010.000" and URL < "192.168.011.255"

或     SELECT * FROM tblURL其中URL&gt; 3232238080和URL&lt; 3232239080

如果您的表tblUrl包含问题建议的网址,那么您应首先执行DNS查找以将名称解析为IP地址。

答案 1 :(得分:2)

你可以这么做

SELECT * FROM tblUrl WHERE URL like '192.168.1.%'

将选择从192.168.1.1到.254的所有IP地址

或者您可以更具创意,例如

SELECT * FROM tblUrl WHERE URL like '192.168.1.[0-9][0-9]'

这将选择所有IP地址192.168.1.10到.99