SQL Bestimmte Einträge aus der Datenbank löschen

Naklarmann

Cadet 2nd Year
Registriert
Apr. 2016
Beiträge
21
Ich habe ein Forum mit etlichen Tausend Bildern drin.
Blöderweise sind sehr viele davon Hart Verlinkt, das heißt
mit vorangestelltem http://www.meine-domain.com

Jetzt ist das Forum auf eine andere Domain umgezogen, und nun
werden ein Großteil der Bilder Natürlich nicht mehr angezeigt.

Wenn ich nun per Hand das http://www.meine-domain.com aus den
Postings rauslösche und als Relativen Link /bilder stehen lasse, werden die Bilder
immer angezeigt egal welche Domain benutzt wird.

Zig Tausend Postings per Hand zu durchsuchen und zu ändern ist aber keine Lösung.

Für die Datenbanken nutze ich phpMyAdmin.
Die Tabelle heißt: phpkit_forumpost
Die Spalte: forumpost_text

Ich habe das mal So probiert:
PHP:
DELETE FROM `phpkit_forumpost` WHERE forumpost_text = 'http://www.meine-domain.com';

Das hat nicht Funktioniert.

Wie müsste der Befehl aussehen das dieses http://www.meine-domain.com aus allen Postings gelöscht wird ??
 
Ist ein UPDATE Statement keine Option? Du willst sie komplett löschen und dann neu hinzufügen?

EDIT: Hast du ansonsten mal statt "=" ein "LIKE" versucht?
Also:
WHERE forumpost_text LIKE '%http://www.meine-domain.com%';
 
Zuletzt bearbeitet:
Versuch's mal mit der SQL LIKE Funktion:
http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html

Wenn http://www.meine-domain.com nur am Anfang steht:
PHP:
DELETE FROM `phpkit_forumpost` WHERE forumpost_text LIKE 'http://www.meine-domain.com%';

Wenn der Text irgendwo im Post kommen kann:
PHP:
DELETE FROM `phpkit_forumpost` WHERE forumpost_text LIKE '%http://www.meine-domain.com%';

Kannst ja zur Sicherheit vor dem DELETE ein SELECT machen, um die Posts aufzulisten, die dann gelöscht werden:
PHP:
SELECT FROM `phpkit_forumpost` WHERE forumpost_text LIKE '%http://www.meine-domain.com%';
 
Brauchst doch nur ein Replace ausführen und gut ist.

Schau mal, so könnte das doch gehen:
Code:
UPDATE `phpkit_forumpost` SET `forumpost_text` = REPLACE(`forumpost_text`, 'http://www.meine-domain.com/bilder/irgendwas/', 'bilder/irgendwas/);

Also sucht er dir in der Spalte die Domain und kegelt die dann raus, so dass ein relativer Pfad entsteht. :)
Ist das so gewollt?
 
Super so viele Antworten in so kurzer Zeit.

Das wird ich jetzt mal alles ausprobieren.

Vielen Dank :daumen:
 
Vielleicht hast du den "safe update mode" an. Dann kannst du nur löschen, wenn die where Klausel zusammen mit einer ID verwendet wird. Du kannst dann also keine anderen Spalten als Kriterien wählen.
 
Ich habe das verwendet:

PHP:
DELETE FROM `phpkit_forumpost` WHERE forumpost_text LIKE '%http://www.meine-domain.com%';

Und es hat alles Funktioniert.

Es waren doch einige Einträge die da gelöscht wurden. :D

27150 Datensätze gelöscht. (Die Abfrage dauerte 0.5668 Sekunden)

Danke :freaky:
 
Zurück
Oben