Nur eine Zeile ausgeben - Datenbankabfrage optimieren

xxGuMMi

Benutzer
Beiträge
8
Datenbank
ideannamesizebrandcolor
12000Hausschuh37DBForum17
22000Hausschuh38DBForum17
32000Hausschuh39DBForum17
42000Hausschuh40DBForum17
54500Sneaker36Microsoft20
64500Sneaker37Microsoft20
74500Sneaker38Microsoft20
84500Sneaker39Microsoft20

Gewünschtes Ergebnis

Ich will meine Datenbankabfrage verbessern. Aktuell hole ich mir alle Schuhe wo die ean = 2000 ist.

SELECT * FROM `artikel` WHERE `ean` LIKE '2000'

Dadurch bekomme ich auch viel unnötige Daten doppelt.... gerade die vielen Image URL etc sind sehr viel unnötige Daten. Das ganze mach ich nur, weil ich die einzelnen Schuhgrößen benötige. Alle anderen Daten sind identisch. Gibt es eine Möglichkeit mit einer Abfrage nur die notwendigen Daten zu erfassen?

eannamesizebrandcolor
2000Hausschuh37,38,39,40DBForum17

Grüße 😁
 
Werbung:
ja, du suchst eine Aggregierung. In PostgreSQL würde ich string_agg oder array_agg verwenden, MySQL kenne ich kaum.

PS.: Wenn Deine EAN-Spalte EAN-Werte enthalten soll, dann sind diese nicht valide.
 
Werbung:
Du kannst einfach GROUP_CONCAT verwenden. Z.B so:

Code:
SELECT
    ean
  , name
  , GROUP_CONCAT(size) as size
  , band
  , color
FROM `artikel`
WHERE `ean`  = '2000';
GROUP BY ean;

ODER du tauscht die GROUP_CONCAT ZEILE zu
GROUP_CONCAT(size ORDER BY size DESC SEPARATOR ' , ') AS size
Damit kannst du sie Reihenfolge und das Trennzeichen festlegen
 
Zurück
Oben