2016-03-24 13 views
0

Ich habe eine Spalte mit Daten wie folgt aus:MySQL SELECT REPLACE Teil der Zeichenfolge

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 

ich den deutlichen domain.com Teil dieser Links auswählen möchten, und dann diese einfügen in eine andere Spalte

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

Dies wählt alles ohne die http://www. Wie entferne ich den Rest der Verbindung so im links mit domain.com und dann in eine andere Spalte einfügen?

Antwort

0

Try this:

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

Anwendung SUBSTRING_INDEX nach 'http://www.' wurde aus dem Domain-String eliminiert, gibt den Teil der Zeichenfolge vor dem ersten Auftreten von '/'.

Demo here

+0

Wie kann ich die Ergebnisse in eine andere Spalte einfügen? – user3312792

+0

@ user3312792 Mach einfach ein 'UPDATE'. Es hängt tatsächlich davon ab, welche Zeilen Sie aktualisieren möchten. –

+0

UPDATE MYTABLE SET Feld = SELECT DISTINCT SUBSTRING_INDEX (REPLACE (Domäne, 'http: // www.', ''), '/', 1) AS Domäne FROM Mytable? – user3312792

0

Sie können dies mit substring_index() tun. Zum Beispiel könnte dies auf Ihren Daten arbeitet:

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