我有一个存储网址的列,我想生成一个选择查询以撤回包含特定域名的所有网址。
存储的网址示例: http://www.fox.com/files/apple.jpg,http://mail.redfox.com/help/index.aspx,http://apple.com/ 等
我知道你在想什么,只需使用LIKE。
我不能的原因是:SELECT * WHERE Domains IS LIKE %fox.com%
它会返回http://www.fox.com/files/apple.jpg和http://mail.redfox.com/help/index.aspx(因为它们都包含fox.com)。
除了你的基本查询之外,我不是所有熟悉SQL的人,SQL Server可以做一些我不熟悉的正则表达式魔法吗?
答案 0 :(得分:5)
您可以测试两个子域和裸域的域名:
WHERE Domains IS LIKE '%.fox.com/%' OR Domain IS LIKE '%/fox.com/%'
当然,您可以使用REGEX([\/\.]fox.com\/
)来完成此操作,但稍后可能更容易记住/理解简单的SQL。