我试图消除mysql数据库表中的重复域名(URL' s。)
我已经使用此查询来查找"相同"网址:
SELECT URL,
COUNT(*) c
FROM Links
GROUP BY URL
HAVING c > 1;
但是这个查询无法找到我需要的相同域名的不同网址:
example.com
www.example.com
www.example.com/
www.example.com/somepage.htm
任何帮助都会非常感激。
答案 0 :(得分:1)
您可以非常轻松地处理最后三种情况:
select min(url), count(*) as c
from links
group by substring_index(url, '/', 1)
having c > 1;
要获得第一个,我建议在字符串的开头删除www.
。以下内容应该有效(如果.www
稍后在第一个/
之前的网址中出现,则会失败:
select min(url), count(*) as c
from links
group by (case when url like 'www.%' then substring(substring_index(url, '/', 1), 5)
else substring_index(url, '/', 1)
end)
having c > 1;