检索具有相似性的行

时间:2015-03-31 09:09:30

标签: sql

我有一个包含用户提交的网址的数据库。 我想检索包含相似之处的每个链接。 例如:

http://google.com

http://google.nl

http://google.com/something

到目前为止,我的自加入查询失败了。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

你应该使用这样的东西:

SELECT * FROM MY_TABLE WHERE MY_FIELD LIKE 'http://google.%'

在哪里调用%'通配符'并且意味着任何数量的任何角色'。

答案 1 :(得分:0)

如果数据始终是网址,我会找到一些方法来规范化数据,所以请执行以下操作:

  • 删除http://和http://
  • 删除顶级域名.co.uk,.nl,.com(您可以从维基百科或其他地方获取列表)
  • 删除每个查询字符串,如果你有一个?,删除它后面的所有内容,那么你的规范化字符串就变成了:

来源:

http://www.google.com https://news.google.com http://google.com https://google.com/hello?wht=sessiojjkahfjkafhadjkfhajk https://google.com/hello?qekqrjeqkej

结束为:

google.com news.google.com google.com google.com/hello google.com/hello

如果您想删除诸如将news news.google.com更改为google.com之类的内容,您也可以轻松删除任何前缀,并且google.com/hello中的/ hello也是如此

这实际上取决于哪些数据对您有用,但是在匹配很容易的状态下,而不是试图找到生成匹配的方法。