2016-05-06 5 views
0

Ich habe eine große Datenbank, in der die website Spaltenwerte malformed sind:Wie ersetze ich einen Teilstring zu einem Spaltenwert in MySQL?

http://.www.123.com.au, http://.www.exampleurl.com 

Ich möchte diese Urls korrigieren, indem diese zusätzlichen Zeichen zu entfernen . als:

http://www.123.com.au, http://www.exampleurl.com 

ich diese Werte zu erhalten, indem man folgende select-Anweisung:

SELECT * 
FROM `tbl_business` 
WHERE `website` LIKE 'http://.%'; 
+0

Mögliches Duplikat [MySQL String ersetzen] (http://stackoverflow.com/questions/5956993/mysql-string-replace) –

+0

Formatierte Beispiel Spalten und Abfrage lesbarer – niemmi

Antwort

2
UPDATE your_table 
SET your_field = REPLACE(your_field, 'http://.www', ' http://www') 
WHERE your_field LIKE '%http://.ww%'; 

Die REPLACE-Funktion ist der einfachste Weg, den ich kenne, und sobald Sie wissen, dass es da ist, ist es ein sehr nützliches Werkzeug. In diesem Fall denke ich, dass Sie die WHERE-Klausel nicht benötigen würden, wenn es sich um eine kleine Anzahl von Datensätzen handelt, aber ich würde sie hinzufügen, sodass Sie nur an einer Teilmenge der Daten arbeiten, besser für größere Datenmengen und um unbeabsichtigte Konsequenzen zu vermeiden.

+1

Während dieser Code-Schnipsel lösen können, die Frage zu sein, [mit einer Erklärung] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) hilft wirklich, die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. Bitte versuchen Sie auch nicht, Ihren Code mit erklärenden Kommentaren zu füllen, dies reduziert die Lesbarkeit sowohl des Codes als auch der Erklärungen! –