2016-10-09 22 views
1

我做了这个表:如何选择字符之间的字符串?

表(网站)

WebsiteID | WebsiteName 
2324442  'http://www.samsung.com/us/' 
2342343  'https://www.microsoft.com/en-au/windows/' 
3242343  'http://www.apple.com/au/iphone/' 

而且我希望能够SELECT从这个表中的域名。

事情是这样的:

WebsiteName 
'www.samsung.com' 
'www.microsoft.com' 
'www.apple.com' 

有没有我可以用这样的字符串的方法?就像分割///之间的字符串一样。

回答

3

您可以使用SUBSTRING_INDEX()

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(websiteName, '//', -1), 
        '/', 1) 
FROM table 
+0

谢谢@sagi! – RoadRunner

+0

如果网站字符串末尾没有斜线,会发生什么情况? – RoadRunner

+1

假如你的意思是'http:// www.example.com/SomeThing'之类的东西,那还是应该没问题。 @RoadRunner – sagi

1

你甚至可以使用以下方法:

SELECT WebsiteID , WebsiteName 
(CHARINDEX ('//', WebsiteName, 1) + 1), -- Position of the double slashes 
CHARINDEX('/', REVERSE (WebsiteName), 1), -- Position of the last single slash 
SUBSTRING(WebsiteName, (CHARINDEX ('//' , WebsiteName, 1) + 2), CHARINDEX('/', REVERSE (WebsiteName), 1)) -- Final string 
FROM Table 
+0

感谢您的答案。如果网站末尾没有斜线,会发生什么情况? – RoadRunner

+0

同样好,我希望我能给出两个正确的答案。 – RoadRunner

+0

不用担心。只要需要就使用它。 –

相关问题