在MYSQL

时间:2016-03-13 08:46:28

标签: mysql sql

我有以下几行:

http://domain1.com/moshe
https://domain2.com/
https://domain3.com
https://domain4.com?gembom

我需要这些结果

domain1.com
domain2.com
domain3.com
domain4.com

我究竟能在MySQL中做到这一点吗?

在JavaScript中,我可以简单地使用正则表达式:

string.match(/https?:\/\/([^/]+)/)[0]

但我发现,MySQL没有提取正则表达式。有没有其他方法可以达到相同的效果?

1 个答案:

答案 0 :(得分:1)

以下是如何从MySQL中的网址中提取域名的示例

DECLARE @WebUrl VARCHAR(35);
SET @WebUrl = 'http://stackoverflow.com/questions/ask?title=trim'

SELECT @WebUrl AS 'WebsiteURL',
       LEFT(SUBSTRING(@WebUrl, 
       (CASE WHEN CHARINDEX('//',@WebUrl)=0 
            THEN 5 
            ELSE  CHARINDEX('//',@WebUrl) + 2
            END), 35),
       (CASE 
       WHEN CHARINDEX('/', SUBSTRING(@WebUrl, CHARINDEX('//', @WebUrl) + 2, 35))=0 
       THEN LEN(@WebUrl) 
       else CHARINDEX('/', SUBSTRING(@WebUrl, CHARINDEX('//', @WebUrl) + 2, 35))- 1
       END)
       ) AS 'Domain

';

您可以根据自己的需要进行适当的修改。