选择查询以返回列包含域名的所有行

时间:2012-02-27 14:35:45

标签: sql sql-server

我有一个存储网址的列,我想生成一个选择查询以撤回包含特定域名的所有网址。

存储的网址示例: http://www.fox.com/files/apple.jpghttp://mail.redfox.com/help/index.aspxhttp://apple.com/

我知道你在想什么,只需使用LIKE。

我不能的原因是:SELECT * WHERE Domains IS LIKE %fox.com%它会返回http://www.fox.com/files/apple.jpghttp://mail.redfox.com/help/index.aspx(因为它们都包含fox.com)。

除了你的基本查询之外,我不是所有熟悉SQL的人,SQL Server可以做一些我不熟悉的正则表达式魔法吗?

1 个答案:

答案 0 :(得分:5)

您可以测试两个子域和域的域名:

WHERE Domains IS LIKE '%.fox.com/%' OR Domain IS LIKE '%/fox.com/%'

当然,您可以使用REGEX([\/\.]fox.com\/)来完成此操作,但稍后可能更容易记住/理解简单的SQL。