Mysql sql-查看URL的所有主机名及其计数的查询
我有一个包含许多URL的列的表,我想得到所有不同的主机名及其计数Mysql sql-查看URL的所有主机名及其计数的查询,mysql,sql,regex,Mysql,Sql,Regex,我有一个包含许多URL的列的表,我想得到所有不同的主机名及其计数 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 应该产生 ╔════╦════════════════
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 ║
╚════╩══════════════════╩══════╝
我无法创建查询,我不擅长正则表达式,它可以完成将URL编辑为主机名所需的操作。这个查询应该可以为您提供帮助。()
你是否擅长正则表达式并不重要。MySQL无论如何不能在
SELECT
子句中使用它们。您可能需要研究子字符串\u INDEX()
函数。提前想想——插入URL时,应该将URL的两部分拆分为两列。东西(除了DATETIME)放回一起比拆开容易得多。工作正常但很慢
SELECT SUBSTRING_INDEX(column_links,'/',3) host,
COUNT(*) number
FROM links
GROUP BY SUBSTRING_INDEX(column_links,'/',3)