2016-03-24 178 views
0

的一部分,我有這樣的數據列:MySQL的選擇替換字符串

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留下,然後將其插入另一列?

回答

0

試試這個:

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

應用SUBSTRING_INDEX'http://www.'後已從域串消除,返回字符串的一部分的第一次出現之前'/'

Demo here

+0

如何將結果插入另一列? – user3312792

+0

@ user3312792只要做一個'UPDATE'。它實際上取決於你想要更新哪些行。 –

+0

UPDATE mytable SET field = SELECT DISTINCT SUBSTRING_INDEX(REPLACE(domain,'http:// www。',''),'/',1)AS域 FROM mytable? – user3312792

0

您可以使用substring_index()來做到這一點。例如,這可能對您的數據的工作:

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