来自MySql中url的GROUP域

ebe*_*ben 2 regex mysql sql

我有一个包含许多网址的大型数据库,有许多域重复和我;我试图只获取域名.例如:

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,siteFROM tableGROUP BY siteORDER BY idDESC LIMIT 50

我需要使用正则表达式我想,但我不是mysql大师.

sha*_*mar 9

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.由+计数替换和组