web-dev-qa-db-de.com

Suchen und ersetzen Sie 'http' in 'https' in der Datenbank

Mit phpmyadmin möchte ich eine Abfrage ausführen, die meine gesamte Datenbank durchsucht nach:

http://example.com

Und ersetzen durch:

https://example.com

Meine SQL-Kenntnisse sind begrenzt, vielleicht so etwas wie:

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

Die Datenbank ist über 1 GB groß, also kann ich nicht den Server zum Absturz bringen.

Update: Beachten Sie, dass es hier auf SO) andere Antworten gibt, die sich mit Suchen und Ersetzen befassen, sie scheinen jedoch nicht die gesamte Datenbank abzudecken.

13

benutze REPLACE. und wenn es einen Index für das Feld gibt, kann das UPDATE sie verwenden

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

nur example.com ändern

dies findet nur Zeilen mit ' http: //example.com% '

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

oder dies findet alle Zeilen mit http: //, ändert aber nur dieses http://example.com in https://example.com

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

Ich würde insert verwenden:

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