我有一个包含许多网址的大型数据库,有许多域重复和我;我试图只获取域名.例如:
http://example.com/someurl.html
http://example.com/someurl_on_the_same_domain.html
http://example.net/myurl.php
http://example.org/anotherurl.php
Run Code Online (Sandbox Code Playgroud)
我想只获得域名,例如:
http://example.com
http://example.net
http://example.org
Run Code Online (Sandbox Code Playgroud)
我的查询是:
SELECT
id,siteFROMtableGROUP BYsiteORDER BYidDESC LIMIT 50
我需要使用正则表达式我想,但我不是mysql大师.
SELECT
SUBSTR(site, 1 , LOCATE('/', site, 8)-1)
as OnlyDomain
FROM table
GROUP BY OnlyDomain
ORDER BY id DESC LIMIT 50
Run Code Online (Sandbox Code Playgroud)
[编辑]:在OP请求之后,这里是更新的答案,即使域名没有尾部斜杠,也会显示正确的结果:
SELECT
SUBSTR(site, 1 , IF(LOCATE('/', site, 8), LOCATE('/', site, 8)-1, LENGTH(site)))
as OnlyDomain
FROM tablename
GROUP BY OnlyDomain
ORDER BY id DESC LIMIT 50
Run Code Online (Sandbox Code Playgroud)
小智 6
SELECT
COUNT(*) AS nCount,
SUBSTRING_INDEX(REPLACE(REPLACE(REPLACE(site,'http://',''),'https://',''),'www.',''),'/',1) AS sDomain
FROM tbl_table
GROUP BY sDomain
ORDER BY 1 DESC
Run Code Online (Sandbox Code Playgroud)
JQman溶解后的插件也与www.由+计数替换和组