我有一个包含许多网址的列表,我希望获得所有不同的主机名及其计数
column_links
----------
http://abcd.com/efgh/ijk/lmn
http://qwer.com/qwqwq/qwq/wdsd
http://abcd.com/jhksdh/khsdh/khd
http://abcd.com/dsfsdh/khsdh/dsfsdf
http://qwer.com/ihwlidhw/ddsd/wqeqe
应该产生
╔════╦══════════════════╦══════╗
║ ║ hostnames ║ 2 ║
╠════╬══════════════════╬══════╣
║ 1 ║ http://abcd.com ║ 3 ║
║ 2 ║ http://qwer.com ║ 2 ║
╚════╩══════════════════╩══════╝
我无法弥补查询,我不擅长正则表达式
答案 0 :(得分:1)
SUBSTRING_INDEX() is a string function执行您在将URL编辑为主机名时需要执行的操作。这个查询应该为你做的伎俩。 (http://sqlfiddle.com/#!9/940481/1/0)
SELECT SUBSTRING_INDEX(column_links,'/',3) host,
COUNT(*) number
FROM links
GROUP BY SUBSTRING_INDEX(column_links,'/',3)