Ich habe diese Tabelle:Split Spalte in MySQL-Tabelle in muti Spalte Abfrage Wert in einer anderen Spalte basiert mit
Id name degree
1 Ahmad BS
2 John MA
3 Abed MA
4 Sami DR
5 Mona BS
6 Sara BS
Ich möchte Namen basierend auf Grad aufzuspalten, so dass der Grad wird der Header und alle leer sein Wert in Spalte wird es mit NULL
füllen und die Namen in der Spalte werden nach Apathetically sortiert.
sollte das Ergebnis sein:
BS MA DR
Ahmad Abed Sami
Mona John NULL
Sara NULL NULL
Was ich versucht:
SELECT
GROUP_CONCAT(if(degree = 'BS', name, NULL)) AS 'BS',
GROUP_CONCAT(if(degree = 'MA', name, NULL)) AS 'MA',
GROUP_CONCAT(if(degree = 'DR', name, NULL)) AS 'DR'
FROM persons
GROUP BY name;
Aber es scheint nicht richtig.
Wie viele einzigartige 'Grade' gibt es? – 1000111
Nur 3 Grad (BS, MA und DR). –
Obwohl es nicht unmöglich ist, dies in mysql zu tun, würde ich lieber den Pivot auf der Anwendungsseite erstellen. Es wird wahrscheinlich viel effektiver sein. – Shadow