web-dev-qa-db-fra.com

Rechercher et remplacer «http» à «https» dans la base de données

En utilisant phpmyadmin, je veux exécuter une requête qui recherchera dans ma base de données :

http://example.com

Et remplacez par:

https://example.com

Mes connaissances SQL sont limitées, peut-être quelque chose comme:

UPDATE ?? = REPLACE(??, 'http://example.com', 'https://example.com');

La base de données est supérieure à 1 Go, alors que puis-je exécuter qui ne plantera pas le serveur.

Mise à jour: Notez que bien qu'il existe d'autres réponses publiées ici sur SO qui traitent de la recherche et du remplacement, elles ne semblent pas couvrir la totalité de la base de données.

13
Henrik Petterson

utilisez REMPLACER. et s'il y a un index sur le terrain, la MISE À JOUR peut les utiliser

UPDATE t
     set url = REPLACE(url, 'http:', 'https:')
     WHERE url like 'http:%';

ne change que example.com

cela ne trouvera que la ligne avec ' http: //example.com% '

UPDATE t
     set url = REPLACE(url, 'http:', 'https:')
     WHERE url like 'http://example.com%';

ou cela trouvera toutes les lignes avec http: // mais ne changera que ceci http://example.com à https://example.com

UPDATE t
     set url = REPLACE(url, 'http://example.com', 'https://example.com')
     WHERE url like 'http:%';
32
Bernd Buffen

J'utiliserais insert:

update t
     set url = insert(url, 5, 0, 's')
     where url like 'http:%';
2
Gordon Linoff