Ersetzen Sie den String in MySQL durch die Datenbank

Problem

Wie ersetze ich eine Zeichenfolge in allen Tabellen einer Datenbank durch eine andere?

Ersetzen erfordert, dass er den Namen einer Tabelle und einer Spalte angibt, damit es nicht so verwendet werden kann.

Beispiel:

Ersetzen Sie 'string1' durch 'word1' in der Datenbank 'test' in den 50 Tabellen, aus denen eine einzelne Zeile besteht.

Lösung

Bevor Sie fortfahren, machen Sie unbedingt ein Backup Ihrer Arbeit!

Klicken Sie hier, um mehr über das Sichern und Wiederherstellen von MySQL-Datenbanken zu erfahren:

//ccm.net/faq/2884-backup-restore-mysql-database

Wenn Sie MySQL 5.1 verwenden, können Sie die Datenbank information_schema verwenden, die unter anderem die Liste aller Tabellen in Ihrer Datenbank enthält ...

dann können Sie zum Beispiel verwendet werden, um Ihre Anfrage zu generieren.

Ex:

 SELECT CONCAT ('UPDATE test.', TABLE_NAME, 'SET field1 = REPLACE (field1, "string1", "string1");') INFORMATION_SCHEMA.TABLES FROM WHERE TABLE_SCHEMA = 'test'; 

-> Diese Abfrage gibt Ihnen ein Ergebnis, das Sie einfach in den Client einfügen können:

 test.table1 UPDATE SET field1 = REPLACE (Feld1, "Zeichenkette1", "Zeichenkette1") test.table2 UPDATE SET field1 = REPLACE (Feld1, "Zeichenkette1", "Zeichenkette1"); 
Vorherige Artikel Nächster Artikel

Top-Tipps