2017-06-16 3 views
0

Ich brauche ersetzen string1 bis string2 in Spalte große Tabelle. Mein Tischgewicht beträgt 1,7 GB. Für Update werde ich verwenden:MySql Update-Tabelle mit ersetzen string1 string2

UPDATE table 
SET column = REPLACE(column, 'search', 'replace'); 

Also, ich habe einige Fragen:

  1. Will Tabellensperre während des Eingriffs? Sollte ich den öffentlichen Teil meiner Seite verstecken?
  2. Wie lange wird dieser Vorgang ausgeführt?
  3. Wie kann man das besser ausführen? Vielleicht "Bildschirm"? wenn meine ssh-Verbindung geschlossen wird.

MySQL 5.5.53

+1

Und was ist der Grund, warum Sie es anstelle der Verwendung von where-Klausel direkt in ersetzen verwenden müssen? Ihre Frage hängt von Ihren Maschinenfähigkeiten und der Datenbankstruktur ab. –

Antwort

-1

In meinem Fall:

UPDATE table SET column=REPLACE(column, 'search', 'replace') WHERE column LIKE "%search%"; 
2

Sie sollten nicht auf allen Zeilen der Tabelle ersetzen laufen. Fügen Sie stattdessen eine Where-Bedingung hinzu, wie @reds in den Kommentaren sagt. Dies wird Ihr Update viel effizienter und ist der richtige Weg, dies zu tun.

UPDATE table SET column = 'replace' where column = 'search'; 
+0

Ich stimme zu @Menelaos Bakopoulos .. –

+0

Ich stimme mit @reds: D –

+0

Datum geben Sie diese Spalte 'Text', ich brauche Suche 'string' im Text und ersetzen Sie alle Übereinstimmungen. –

Verwandte Themen