Wir haben ~300 Artikel. Innerhalb der 300 Artikel gibt es 3 Größen, also 3 verschiedene Artikel.
Nun ändern sich die jeweiligen Größen (Attribut 1)…
Jetzt haben wir da immer folgendes drin stehen „50x125 cm“ als Beispiel für einen Artikel. Das soll jetzt aber „50x120 cm“ sein.
Via Mehrfachänderung gibt es keine Replace-Möglichkeit. In der Mysql-Tabelle s_articles stehen leider keine Attribute, die Datenbank generell ist ja sehr verschachtelt…
Wie bekomme ich das nun hin, ohne jeden einzelnen Artikel anzupassen?
Gibt es irgendeine MySQL-Abfrage?..
Vielen Dank…
Liebe Grüße,
René
Nachtrag: Konnte in s_articles_attributes jetzt in der MySQL alles ändern (NUR, weil wir keine anderen Artikel mit der Größe haben)
UPDATE s_articles_attributes
SET attr1 = REPLACE(attr1, ‚100x125 cm‘, ‚100x120 cm‘)
Gibt es auch eine Lösung, eine Abfrage zu machen, ob im Titel ein xxx vorkommt und nur da zu Replacen? Der Titel steht ja leider in einer anderen Tabelle…
Über die „articleID“ könnte man eine Verbindung zur Tabelle „s_articles“ herstellen und dann mittels WHERE den Titel des Artikels abfragen.
UPDATE s_articles_attributes ab, s_articles a
SET ab.attr1 = REPLACE(ab.attr1, '100x125 cm', '100x120 cm')
WHERE a.id = ab.articleID
AND a.name LIKE '%test%'
UPDATE s_articles_attributes ab, s_articles_details ad, s_articles a
SET ab.attr1 = REPLACE(ab.attr1, 'normal', 'unnormal')
WHERE ad.id = ab.articledetailsID
AND a.id = ad.articleID
AND a.name LIKE '%test%'
Ja, die Frage ist jedoch, in welcher Tabelle finde ich die Varianten von Artikeln?
Finde dazu keine passende Tabelle. Da müssten ja die IDs mit den Varianten drin stehen.
Gruß
Edit: Ist es s_article_configurator_options? Kann ich da einfach alte Maße durch neue Maße ersetzen und im Frontend wird mir in der Combobox dann der neue Wert angezeigt?
Ich weiß gar nicht warum die Größen bei euch bei Attribute stehen. Das sind eigentlich Optionen und würden deshalb an ganz anderer Stelle stehen. Die Varianten sind zusätzliche Einträge bei “s_articles_details”, man erkennt sich an den Artikelnummern. Ggf. müsste das Query umgebaut werden. Ich habe das jetzt aus Zeitgründen nicht alles getestet.
Ohje, jetzt gehts durcheinander. Oben hast du etwas von Attributen geschrieben. Deine Breite und Höhe ist aber etwas anderes. Diese stehen in der Tabelle „s_articles_details“.
Wenn du sicher bist, welche Werte du ersetzen willst, kann du mit einem Select ja erst einmal testen, ob auch die richtigen ermittelt:
SELECT a.name, ad.ordernumber, ad.width, ad.height
FROM s_articles_details ad, s_articles a
WHERE a.id = ad.articleID
AND a.name LIKE '%test%'
AND ad.height = 125
Dann bekommst du eine Übersicht von allen Artiklen wo im Name “test” und wo die Höhe “125” ist. Wenn diese Abfrage soweit ok ist, dann dieses Query auf Update umstellen:
UPDATE s_articles_details ad, s_articles a
SET ad.height = REPLACE(ad.height, '125', '120')
WHERE a.id = ad.articleID
AND a.name LIKE '%test%'
AND ad.height = 125
bzw. auch:
UPDATE s_articles_details ad, s_articles a
SET ad.height = 120
WHERE a.id = ad.articleID
AND a.name LIKE '%test%'
AND ad.height = 125