Ich schreibe eine Abfrage, um das Ergebnis aus einer Tabelle "tbl_meta" mit 3 Spalten als ID, attr_name, attr_value zu erhalten.retrive mehrere Spalten als mehrere Spalten in einer Zeile mysql
Tabellenstruktur wie der 2. Spalte ist der Name des Attributs und 3. Spalte wird der Wert wie unter
ID attr_name attr_value
1 name abc
2 address aaa
3 age 25
Also, wenn ich „select * from tbl_meta wo ID = 10“ verwenden, ich mag als Folge bekam es ist, wie oben gezeigt, aber ich brauche, wie unten in einer einzigen Zeile mit Spalten ergeben:
col1 col2 col3 col4 col5 col6
name abc address aaa age 25
wie kann ich diese mit mySQL zu tun?
HINWEIS
Ich habe versucht, gegebenen Lösungen @MySQL - Rows to Columns und MySQL pivot row into dynamic number of columns aber es ist nicht, wie ich erwarte. Als ich wie
versuchteSELECT
case when attr_name = 'name' then attr_value end as name ,
case when attr_name = 'address' then attr_value end as address,
case when attr_name = 'age' then attr_value end as agep,
FROM tbl_meta
where ID = 10
I-Ausgang, wie immer bin:
name address age
abc NULL NULL
NULL aaa NULL
NULL NULL 25
stattdessen kann ich nicht bekommen wie
name address age
abc aaa 25
aus obiger Tabelle.
Dieser Vorgang wird als Pivotieren bezeichnet und wurde hier so oft auf SO soooo gestellt und beantwortet. In den verknüpften doppelten Themen wird erläutert, wie Sie statische und dynamische Pivot-Tabellen über SQL erstellen. Bitte beachten Sie, dass es viel efzienter ist, eine solche Transformation in der Anwendungslogik im Gegensatz zu mysql durchzuführen. – Shadow
Ich habe es schon einmal versucht, aber da es nicht funktioniert wie erwartet, habe ich eine neue Frage gestellt. – Nil
Die Antwort auf die aktualisierte Frage befindet sich immer noch in der doppelten Frage "MySQL - Zeilen zu Spalten". Dort gibt die meistbeantwortete Antwort eine Schritt-für-Schritt-Beschreibung, wie man diese Transformation liest, bitte lies sie. – Shadow