是否有解析MySQL中的URL域的解决方案

时间:2015-07-22 11:04:27

标签: mysql

我有一张桌子:

表1:

ID  URL
1   http://msdn.microsoft.com/en-us/library/9a6a2sxy.aspx
2   http://en.wikipedia.org/wiki/mysql
3   http://wrong-url
4   http://www.chami.com/tips/internet/042599i.html
5   http://www.chami.com

我想添加一列来记录URL的域名。 我想得到一张这样的表:

ID  URL                                                        Domain
1   http://msdn.microsoft.com/en-us/library/9a6a2sxy.aspx      microsoft.com
2   http://en.wikipedia.org/wiki/mysql                         wikipedia.org
3   http://wrong-url                                           null
4   http://www.chami.com/tips/internet/042599i.html            chami.com
5   http://www.chami.com                                       chami.com

任何人都可以提供解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以使用substring_index()

执行此操作
select substring_index(substring_index(url, '/', 3), substring_index, '.', -2) as domain

这对第三个例子不起作用。为此,使用case检测模式。类似的东西:

select (case when url like 'http//%.%.%/%'
             then substring_index(substring_index(url, '/', 3), substring_index, '.', -2)
        end) as domain