SQL 类似命令中的 IP 地址模式

发布于 2024-11-03 15:22:25 字数 162 浏览 2 评论 0原文

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

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

I want to select rows which contains an IP address in a nvarchar column. What's the correct where statement?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

狠疯拽 2024-11-10 15:22:25

在数据库中对 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 > 3232238080 和 URL < 3232239080

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

The "usual way" to encode IP address in Database is either:

  • 192.168.001.010 (note the padding "0"s)
    or
  • as a integer being (((192 * 256)+ 168 )* 256 + 1 )*256 +10

Both formats allow you to quickly match for an ip in an interval:

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

or
SELECT * FROM tblURL where URL > 3232238080 and URL < 3232239080

If you table tblUrl contains URLs as suggested by your question, then you should perform a DNS lookup first to resolve the name into an IP Address.

べ繥欢鉨o。 2024-11-10 15:22:25

您可以简单地执行此操作

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]'

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

You could simply do this

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

which will select all ip addresses from 192.168.1.1 to .254

Or you can be more creative such as

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

this will select all IP addresses 192.168.1.10 to .99

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文