MySQL SELECT REPLACE字符串的一部分

时间:2016-03-24 16:09:13

标签: mysql select replace substring

我有一个包含这样数据的专栏:

http://www.example.com/category/link.html
http://www.example2.com/category2/link.html
http://www.example3.com/directory/category/link.php
http://www.example4.com/category4/link.php
http://www.example5.com/directory/link.html

我想选择这些链接的不同domain.com部分,然后将其插入另一列

SELECT DISTINCT REPLACE(domain,'http://www.','') AS domain FROM table;

这会在没有http://www.的情况下选择所有内容如何删除链接的其余部分,以便我留下domain.com,然后将其插入另一列?

2 个答案:

答案 0 :(得分:0)

您可以使用substring_index()执行此操作。例如,这可能适用于您的数据:

select substring_index(substring_index(col, '/', 3), '.', -2) as domain

答案 1 :(得分:0)

试试这个:

SELECT DISTINCT SUBSTRING_INDEX(REPLACE(domain,'http://www.',''), '/', 1) AS domain
FROM mytable

在从域字符串中删除'http://www.'之后应用SUBSTRING_INDEX,在第一次出现'/'之前返回字符串的一部分。

Demo here