# Repository durchsuchen + REPLACE Funktion

**URL:** <https://forum.shopware.com/t/repository-durchsuchen-replace-funktion/92241>\
**Category:** Shopware 6 (German)\
**Created:** [6. Januar 2022 um 13:46 UTC](https://forum.shopware.com/t/repository-durchsuchen-replace-funktion/92241 "2022-01-06T13:46:03Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![\_MikeB](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/_mikeb/32/7856_2.png) [@\_MikeB](https://forum.shopware.com/u/_MikeB)\
**Post date:** [6. Januar 2022 um 13:46 UTC](https://forum.shopware.com/t/repository-durchsuchen-replace-funktion/92241/1 "2022-01-06T13:46:03Z")

</div>

Hallo.

Lässt sich folgendes Konstrukt auch auf das ProductRepository anwenden?

```auto
$this->connection->createQueryBuilder()
->select('*')
->from('product')
->where('REPLACE(REPLACE(REPLACE(REPLACE(feldname,\' \',\'\'),\'-\',\'\'),\'.\',\'\'),\'/\',\'_\') = wert')

```

Ich benötige die REPLACE Funktion um den Feldwert vor dem Vergleich zu „bereinigen/umzuwandeln“. Mit dem Query Build funktioniert es allerdings brauche ich die Entitäten als Result und kein Array. Repository wäre schöne und übersichtlicher. Leider weiß ich nicht wie und ob das überhaupt geht.  
Danke für euer Feedback.

Gruß Mike

---

<div class="post-metadata">

**Author:** ![marco.steinhaeuser](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/marco.steinhaeuser/32/14512_2.png) [@marco.steinhaeuser](https://forum.shopware.com/u/marco.steinhaeuser)\
**Post date:** [6. Januar 2022 um 22:15 UTC](https://forum.shopware.com/t/repository-durchsuchen-replace-funktion/92241/2 "2022-01-06T22:15:02Z")

</div>

Hallo @_MikeB,

ich bin mir grad nicht sicher… Du willst den Symfony Query Builder ändern, damit das für Dein Projekt passt?

---

<div class="post-metadata">

**Author:** ![moschadr](https://avatars.discourse-cdn.com/v4/letter/m/65b543/32.png) [@moschadr](https://forum.shopware.com/u/moschadr)\
**Post date:** [7. Januar 2022 um 10:31 UTC](https://forum.shopware.com/t/repository-durchsuchen-replace-funktion/92241/3 "2022-01-07T10:31:16Z")

</div>

@_MikeB Moin, mal abgesehen davon, dass solche MultiReplaces eine Katastrophe sind … klar kannst Du das Repo verwenden und die Criteria entsprechend aufbereiten. Allerdings musst Du vorher den Feldnamen schon kennen. Daher würde ich empfehlen das ganze Replace aus der Abfrage zu entfernen und den Feldnamen vorher mit PHP aufzubereiten. Da reicht dann sicher auch eine RegExp.

---

<div class="post-metadata">

**Author:** ![\_MikeB](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/_mikeb/32/7856_2.png) [@\_MikeB](https://forum.shopware.com/u/_MikeB)\
**Post date:** [17. Januar 2022 um 08:23 UTC](https://forum.shopware.com/t/repository-durchsuchen-replace-funktion/92241/4 "2022-01-17T08:23:53Z")

</div>

Hi @moschadr

Ich weiß das es übel aussieht aber sehe aktuell keine andere Möglichkeit. Den Feldnamen in PHP aufzubereiten geht nicht da das die falsche Richtung ist. Beispiel:  
Feldwert in der DB ist 123 45.6-7. In PHP habe ich aber nur den „bereinigten“ Wert 1234567. Mit diesem will ich alle Zeilen finden die den Wert in einer abgewandelten Form enthalten. Hoffe du weißt wie ich meine?! Deshalb benötige ich solch einen Replace Funktion im Querybuilder. Oder siehst du eine andere Möglichkeit das zu lösen?

Gruß Mike

---

<div class="post-metadata">

**Author:** ![moschadr](https://avatars.discourse-cdn.com/v4/letter/m/65b543/32.png) [@moschadr](https://forum.shopware.com/u/moschadr)\
**Post date:** [18. Januar 2022 um 09:35 UTC](https://forum.shopware.com/t/repository-durchsuchen-replace-funktion/92241/5 "2022-01-18T09:35:10Z")

</div>

@_MikeB Hi Mike, nur für mich, um Missverständnisse auszuschließen … in Deinem Beispiel führst Du das Replacing auf „feldname“ aus. Feldname ist der Spaltenname der Tabelle. Richtig? Und „wert“ aus Deinem Beispiel ist der Inhalt. Umgelegt auf Deinen letzten Post verstehe ich das so, dass Du in sämtlichen Spalten der Tabelle nach dem Wert „1234567“ suchen musst, in irgendeiner Spalte aber nur „123 45.6-7“ steht. Deine Suche soll sich aber auf alle Spalten und keine bestimmte Spalte beziehen. Richtig?

---

<div class="post-metadata">

**Author:** ![\_MikeB](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/_mikeb/32/7856_2.png) [@\_MikeB](https://forum.shopware.com/u/_MikeB)\
**Post date:** [3. März 2022 um 13:37 UTC](https://forum.shopware.com/t/repository-durchsuchen-replace-funktion/92241/6 "2022-03-03T13:37:43Z")

</div>

@moschadr mit etwas verspätung… Ja genau. Ich der DB kann 12-34.56 stehen. Wenn ich nach 123456 suche, will ich ich diesen Datensatz bekommen.
