Nahradiť reťazec v MySQL prostredníctvom databázy

Problém

Ako nahradíte reťazec iným vo všetkých tabuľkách v databáze?

Nahradiť vyžaduje, aby dal názov tabuľky a stĺpca, takže to nie je použiteľné.

Príklad:

Nahraďte 'string1' za 'word1' v databáze 'test' na 50 tabuľkách, ktoré tvoria jeden riadok.

Riešenie

Pred pokračovaním sa uistite, že ste si vytvorili zálohu svojej práce!

Kliknite sem a dozviete sa viac o zálohovaní a obnove databázy mysql:

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

Ak používate MySQL 5.1, môžete použiť databázu information_schema, ktorá okrem iného obsahuje zoznam všetkých tabuliek v databáze ...

potom môžete napríklad použiť na vygenerovanie vašej požiadavky.

ex:

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

-> Tento dotaz vám dá výsledok, ktorý môžete vložiť do klienta:

 test.table1 UPDATE SET field1 = REPLACE (field1, "string1", "string1") test.table2 UPDATE SET field1 = REPLACE (pole1, "string1", "string1"); 
Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy