Hallo, wir haben ein Archiv, in welches wir alle verkauften Artikel verschieden. leider ist die datei so gross geworden, dass wir pro Artikel in der kategorie Archiv nur 2 Bilder pro Artikel lassen möchten, die anderen Fotos sollen gelöscht werden. Gibt es dafür einen SQL Befehl? Danke Euch im Voraus.
Hallo Peter Erstmal aktuelles Backup der Tabelle products_images anfertigen. Dann folgenden SQL-Befehl ausführen, um bei allen Artikeln in der Kategorie "Archiv" nur die ersten beiden Artikelbilder beizubehalten und alle darüber hinaus loszulösen: Code: DELETE FROM `products_images` WHERE image_nr>1 AND products_id IN ( SELECT p1.products_id FROM products_to_categories p1, categories_description p2 WHERE p1.categories_id=p2.categories_id AND p2.language_id=2 AND p2.categories_name='Archiv' ); Anschließend kontrollieren und wenn das soweit passt, kannst Du auch die nicht mehr benötigten Alt-Texte löschen: Code: DELETE FROM `gm_prd_img_alt` WHERE image_id NOT IN (SELECT image_id FROM `products_images`); Ein SQL-Befehl löscht keine Bilder! Die Artikelbilder sind nach Ausführung nach wie vor physisch vorhanden. Zum Löschen gibt's im Admin die Option Toolbox > Artikelbilder löschen > Alle nicht verwendeten Artikelbilder unwiderruflich löschen?
Hallo Dominik, Du bist der Beste, SQL hat funktioniert. Prüfe das jetzt noch die Woche und schreibe dir dann wieder. VG Peter
Hoi Dominik, gibt es auch einen MySQL-Befehl, um Bilder aus der Datenbank zu entfernen, die für einen Artikel angegeben sind, aber physisch nicht auf dem Server vorhanden sind? Beispiel: Ein Artikel im Shop wurde mit 3 Bildern erstellt, aber nur 2 davon sind tatsächlich vorhanden. Gibt es eine Möglichkeit, die überflüssigen Bild-Einträge aus der Datenbank zu löschen, ohne den Artikel selbst zu entfernen? Danke Euch im Voraus.