Rechercher et remplacer dans toute la firebase database mysql

Je voudrais faire une recherche et remplacer à l’intérieur d’une firebase database entière pas seulement une table.

Comment puis-je modifier le script ci-dessous pour travailler?

update [nom_table] set [nom_zone] = remplace ([nom_zone], ‘[ssortingng_to_find]’, ‘[ssortingng_to_replace]’);

Est-ce que je viens d’utiliser un astérisque?

update * set [nom_zone] = remplace ([nom_zone], ‘[ssortingng_to_find]’, ‘[ssortingng_to_replace]’);

sqldump dans un fichier texte, recherchez / remplacez, réimportez le sqldump.

Vider la firebase database dans un fichier texte
mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

Restaurez la firebase database après y avoir apporté des modifications.
mysql -u root -p[root_password] [database_name] < dumpfilename.sql

Mettre à jour l’ancienne URL vers la nouvelle URL dans Word-Press mysql Query:

 UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_posts SET post_excerpt = replace(post_excerpt, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); 

Cela implique fortement que vos données ne sont pas normalisées pour commencer. Vous devriez vraiment réparer ça.

Somteh = quelque chose comme ça devrait fonctionner (notez que vous n’avez pas mentionné votre utilisation des autres langages – donc c’est écrit comme une procédure stockée MySQL)

  create procedure replace_all(find varchar(255), replce varchar(255), indb varcv=char(255)) DECLARE loopdone INTEGER DEFAULT 0; DECLARE currtable varchar(100); DECLARE alltables CURSOR FOR SELECT t.tablename, c.column_name FROM information_schema.tables t, information_schema.columns c WHERE t.table_schema=indb AND c.table_schema=indb AND t.table_name=c.table_name; DECLARE CONTINUE HANDLER FOR NOT FOUND SET loopdone = 1; OPEN alltables; tableloop: LOOP FETCH alltables INTO currtable, currcol; IF (loopdone>0) THEN LEAVE LOOP; END IF; SET stmt=CONCAT('UPDATE ', indb, '.', currtable, ' SET ', currcol, ' = word_sub(\'', find, '\','\'', replce, '\') WHERE ', currcol, ' LIKE \'%', find, '%\''); PREPARE s1 FROM stmt; EXECUTE s1; DEALLOCATE PREPARE s1; END LOOP; END // 

Je vous laisse le soin de déterminer comment déclarer la fonction word_sub – j’ai fait assez de programmation libre ici.

Réponse courte: Vous ne pouvez pas.

Réponse longue: Vous pouvez utiliser INFORMATION_SCHEMA pour obtenir les définitions de table et l’utiliser pour générer dynamicment les instructions UPDATE nécessaires. Par exemple, vous pouvez commencer par ceci:

 SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'your_schema' 

J’essaierais d’éviter cela si possible.

Ce n’est pas possible – vous devez effectuer une mise à jour pour chaque table individuellement.

AVERTISSEMENT: DUBIEUX, MAIS IL FONCTIONNE (PROBABLEMENT) LA SOLUTION SUIT

Alternativement, vous pouvez vider la firebase database via mysqldump et simplement effectuer la recherche / remplacement sur le fichier SQL résultant. (Je vous recommande d’utiliser tout ce qui pourrait toucher la firebase database en cours, ainsi que les options –add-drop-table et –extended-insert). Cependant, vous devez vous assurer que le Rechercher / Remplacer le texte n’allait pas modifier autre chose que les données elles-mêmes (c.-à-d. que le texte que vous alliez échanger pourrait ne pas faire partie de la syntaxe SQL) et j’essaierais vraiment de réinsérer le texte. une firebase database de test vide en premier .)

Soltion Simple

 UPDATE `table_name` SET `field_name` = replace(same_field_name, 'unwanted_text', 'wanted_text') 

MySQL Search & Replace Tool

Outil Web très utile, écrit en PHP, qui facilite la recherche et le remplacement de chaînes de texte dans une firebase database MySQL.

ATTENTION, lors du remplacement avec la commande REMPLACER!

Pourquoi?

Comme il y a de fortes chances que votre firebase database contienne des données sérialisées (en particulier la table wp_options ), utiliser simplement “replace” risque de casser des données.

Utiliser la sérialisation recommandée: https://www.protectpages.com/tools/WordpressMigrator

Si vous êtes dans phpMyAdmin et que vous n’avez qu’un changement minime, vous pouvez le faire facilement.

  • Connectez-vous à votre phpMyAdmin
  • Sélectionnez la firebase database dont vous avez besoin pour effectuer les modifications
  • Cliquez sur l’option de recherche

    entrer la description de l'image ici

Vous pouvez toujours sélectionner toutes les tables ou n’importe laquelle. N’oubliez pas de donner le mot-clé de recherche, il sera utilisé comme joker (%).

  • Cliquez maintenant sur Go.
  • Cela vous donnera toutes les tables qui ont l’article que vous avez recherché.

entrer la description de l'image ici

  • Vous pouvez maintenant ouvrir chaque table une par une et effectuer la mise à jour. Un exemple de requête généré peut ressembler à ceci.

    SELECT * FROM sibeecst_passion . wp_ewwwio_images WHERE (CONVERTIR ( id USING utf8) LIKE ‘% sibee%’ OU CONVERTI ( path USING utf8) LIKE ‘% sibee%’ OU CONVERT ( image_md5 UTILISANT utf8) LIKE ‘% sibee%’ OU CONVERTI ( results USING utf8) LIKE ‘ % sibee% ‘OU CONVERT ( gallery USING utf8) LIKE’% sibee% ‘OU CONVERT ( image_size UTILISANT utf8) LIKE’% sibee% ‘OU CONVERT ( orig_size UTILISANT utf8) LIKE’% sibee% ‘OU CONVERT ( updates USING8) LIKE ‘% sibee%’ OU CONVERT ( updated USING utf8) LIKE ‘% sibee%’ OU CONVERT ( trace USING utf8) LIKE ‘% sibee%’ OU CONVERT ( attachment_id UTILISANT utf8) LIKE ‘% sibee%’ OU CONVERT ( resize USING utf8) LIKE ‘% sibee%’ OU CONVERT ( converted USING utf8) LIKE ‘% sibee%’ OU CONVERT ( level USING utf8) LIKE ‘% sibee%’ OU CONVERT (en pending USING utf8) LIKE ‘% sibee%’ OU CONVERT ( backup utilisant utf8) LIKE ‘% sibee%’)

Une autre option (selon le cas d’utilisation) consisterait à utiliser les produits TextPipe et DataPipe de DataMystic . Je les ai utilisés dans le passé, et ils ont fonctionné très bien dans les scénarios de remplacement complexes, sans avoir à exporter les données de la firebase database pour trouver et remplacer.

Je voulais juste partager comment j’ai fait ce truc de recherche / remplacement avec la firebase database SQL, car je devais remplacer les liens du fichier de sessionbuddy de Chrome.

  • J’ai donc exporté le fichier de firebase database SQL en tant que fichier .txt en utilisant SQLite Database Browser 2.0 b1
  • Rechercher / remplacer dans le bloc-notes ++
  • Importation du fichier .txt sur SQLite Database Browser 2.0 b1