sql >> Database >  >> RDS >> Mysql

Hoe kan ik een veld groeperen met mysql?

Als u alleen kleuren en afbeeldingsvelden wilt combineren:

SELECT v_ebt, CONCAT("color: ", colors, "; image: ", image) AS Data FROM table;

Om alle gegevens verticaal in één kolom te krijgen en toch bestellen op gemeenschappelijke identifier toe te staan, overweeg dan:

SELECT 1 AS Srt, v_ebt AS Grp, v_ebt AS Data FROM docs
UNION SELECT 2, v_ebt, CONCAT("color: ", colors, ", image: ", image) 
     FROM docs
ORDER BY Grp, Srt;

Als u meerdere rijen gegevens in een enkele tekenreeks wilt samenvoegen, onderzoekt u de functie GROUP_CONCAT.

SELECT v_ebt, GROUP_CONCAT(CONCAT("color: ", colors, ", image: ", image, Char(10)+Char(13))
                           ORDER BY CONCAT("color: ", colors, ", image: ", image, Char(10)+Char(13))) AS list
FROM table
GROUP BY v_ebt;

Kan viool niet aan het werk krijgen met Char(10) + Char(13) noch aaneenschakeling met + en ik heb geen MySQL om te testen, maar hopelijk helpt dit je op weg.

In plaats van dit binnen de query te proberen, is er de optie om een ​​rapport te maken dat sorteert en groepeert op v_ebt-gegevens. Dit zou eenvoudig zijn in Access en ik verwacht dat MySQL-rapportagetools en Crystal Reports dit kunnen.




  1. MySQL:unieke beperking op meerdere velden

  2. Geef de beschrijving van de tijdzone weer in to_char() in Oracle

  3. Postgres:converteer enkele rij naar meerdere rijen (unpivot)

  4. PostgreSQL-jokerteken LIKE voor een lijst met woorden