我有以下几行:
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没有提取正则表达式。有没有其他方法可以达到相同的效果?
答案 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
';
您可以根据自己的需要进行适当的修改。