# Attribute replacen statt alle zu setzen

**URL:** <https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095>\
**Category:** Administration\
**Created:** [21. August 2020 um 11:40 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095 "2020-08-21T11:40:50Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![r\_bischof](https://avatars.discourse-cdn.com/v4/letter/r/898d66/32.png) [@r\_bischof](https://forum.shopware.com/u/r_bischof)\
**Post date:** [21. August 2020 um 11:40 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/1 "2020-08-21T11:40:50Z")

</div>

Hey, ich habe ein dickes Problem.

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?

&nbsp;

Gibt es irgendeine MySQL-Abfrage?..

Vielen Dank…

&nbsp;

Liebe Grüße,

René

&nbsp;

&nbsp;

**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‘)

&nbsp;

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…

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [21. August 2020 um 12:24 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/2 "2020-08-21T12:24:28Z")

</div>

Ü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%'

```

UNGETESTET!

---

<div class="post-metadata">

**Author:** ![r\_bischof](https://avatars.discourse-cdn.com/v4/letter/r/898d66/32.png) [@r\_bischof](https://forum.shopware.com/u/r_bischof)\
**Post date:** [21. August 2020 um 12:26 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/3 "2020-08-21T12:26:54Z")

</div>

Sehr vielen Dank, diese Verknüpfung bekam ich nicht hin, du bist ein Held, danke! \<3

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [21. August 2020 um 12:29 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/4 "2020-08-21T12:29:20Z")

</div>

```
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%'

```

So ist es vielleicht besser …

---

<div class="post-metadata">

**Author:** ![r\_bischof](https://avatars.discourse-cdn.com/v4/letter/r/898d66/32.png) [@r\_bischof](https://forum.shopware.com/u/r_bischof)\
**Post date:** [21. August 2020 um 12:40 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/5 "2020-08-21T12:40:59Z")

</div>

Klappt das Prinzip auch bei Varianten?

Ich sehe gerade, dass es die Maße ja auch noch gibt…

![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/9/9ab598618832c1463c5590687af0754c08c835f9.png)

&nbsp;

Es gibt jeweils nur die eine Größe, also nur diese Variante. Kann man das via Abfrage genau so ersetzen?

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [21. August 2020 um 12:52 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/6 "2020-08-21T12:52:09Z")

</div>

Vorher ein Backup von der Datenbank machen und ausprobieren 🙂

---

<div class="post-metadata">

**Author:** ![r\_bischof](https://avatars.discourse-cdn.com/v4/letter/r/898d66/32.png) [@r\_bischof](https://forum.shopware.com/u/r_bischof)\
**Post date:** [21. August 2020 um 13:00 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/7 "2020-08-21T13:00:30Z")

</div>

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.

&nbsp;

Gruß

&nbsp;

&nbsp;

Edit: Ist es&nbsp;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?

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [21. August 2020 um 13:14 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/8 "2020-08-21T13:14:47Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![r\_bischof](https://avatars.discourse-cdn.com/v4/letter/r/898d66/32.png) [@r\_bischof](https://forum.shopware.com/u/r_bischof)\
**Post date:** [21. August 2020 um 13:17 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/9 "2020-08-21T13:17:30Z")

</div>

Wir haben Varianten aktiviert, für den Fall, dass neue Größen dazukommen:

&nbsp;

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/0/05034df7353a0c8fc14ee5ed4a78fe4ac64436ee.png)

Das müsste ich irgendwie in der Datenbank ändern. Irgendwo muss ja Breite und Höhe in der Datenbank definiert sein, dann könnte man das ja ändern…

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [21. August 2020 um 13:24 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/10 "2020-08-21T13:24:32Z")

</div>

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“.

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [21. August 2020 um 13:36 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/11 "2020-08-21T13:36:57Z")

</div>

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

```

… mal so als Beispiel …

---

<div class="post-metadata">

**Author:** ![r\_bischof](https://avatars.discourse-cdn.com/v4/letter/r/898d66/32.png) [@r\_bischof](https://forum.shopware.com/u/r_bischof)\
**Post date:** [24. August 2020 um 10:14 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/12 "2020-08-24T10:14:04Z")

</div>

Danke, das hilft zwar schon weiter, aber im Dropdown-Menü bleibt 125 bestehen, obwohl nun in der Tabelle schonmal überall 120 steht 😕

&nbsp;

![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/0/0b7d956d422f2182ba1ca3797a5ed9d743ba70dc.png)

&nbsp;

Wo ist das denn noch deklariert?

&nbsp;

Gruß 🙂

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [24. August 2020 um 10:19 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/13 "2020-08-24T10:19:24Z")

</div>

Am besten nach solchen Änderungen den Cache mal leeren. Möglich, dass es von ihm kommt.

---

<div class="post-metadata">

**Author:** ![r\_bischof](https://avatars.discourse-cdn.com/v4/letter/r/898d66/32.png) [@r\_bischof](https://forum.shopware.com/u/r_bischof)\
**Post date:** [24. August 2020 um 10:22 UTC](https://forum.shopware.com/t/attribute-replacen-statt-alle-zu-setzen/69095/14 "2020-08-24T10:22:14Z")

</div>

Das habe ich schon 2x, leider ohne Erfolg. Er nimmt die Maße halt aus der Variante, da müsste man das irgendwie ändern…
