sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag gruppera fält med mysql?

Om du bara vill kombinera färger och bildfält:

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

För att få all data vertikalt i en kolumn och fortfarande tillåta ordning efter gemensam identifierare, överväg:

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;

Om du vill sammanfoga flera rader med data till en enda sträng, utforska GROUP_CONCAT-funktionen.

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 inte få fiol att fungera med Char(10) + Char(13) eller sammanlänkning med + och jag har inte MySQL att testa, men förhoppningsvis kommer det här dig igång.

Istället för att försöka göra detta inom query, finns det alternativet att skapa en rapport som kommer att sortera och gruppera efter v_ebt-data. Detta skulle vara enkelt i Access och jag förväntar mig att MySQL-rapporteringsverktyg och Crystal Reports skulle kunna göra det.




  1. PHP, MYSQL kapslade frågor

  2. Oracle-entiteten i VS-entitetsramverket uppdaterar inte primärnyckeln i koden

  3. Gräver djupare i Django-migrationer

  4. Navigera i SQL Server-felloggar