mysql wählt dynamische Zeilenwerte als Spaltennamen, eine andere Spalte als Wert

Ich habe eine Legacy-Tabelle mit Benutzerinformationen (die noch aktiv verwendet wird) und kann die Struktur von - nicht ändern.

id    name       value
------------------------------
0     timezone   Europe/London
0     language   en
0     country    45
0     something  x
1     timezone   Europe/Paris
1     language   fr
1     country    46

Zeitzone / Sprache / Land usw. sind nur Beispiele für Namen. Sie können variabel sein. Es gibt keine endliche Liste, außer eindeutig in den Zeilen dieser Spalte

Ich benötige eine MySQL-kompatible SQL-Abfrage, die Folgendes zurückgeben würde:

id    timezone       language    country  something
---------------------------------------------------
0     Europe/London  en          45       x
1     Europe/Paris   fr          46

Ich habe verschiedene Antworten zum Stackoverflow beim Hacken der Pivot-Tabellenfunktionalität in MySQL durchgesehen, und zwar ähnlich, aber keine davon scheint mit dem Fall der Verwendung von Aliasnamen für variable Spalten aus eindeutigen Zeilenwerten aus einer Spalte derselben Tabelle übereinzustimmen. Obwohl ich wenig geschlafen habe, fangen sie alle an, ein bisschen verschwommen zu werden, entschuldigen Sie sich im Voraus.

Als nächstes könnte ich vorbereitete Aussagen verwendenhttps://stackoverflow.com/a/986088/830171 Das würde zuerst alle möglichen / eindeutigen Werte aus der Namensspalte abrufen und eine Abfrage erstellen, die verwendetCASE WHENund / oder mehrereSELECT oderJOIN auf der gleichen Tabelle Abfragen.

Die Alternative, die ich mir vorstellen kann, wäre, alle Zeilen für diese Benutzer-ID abzurufen und sie in der Anwendung selbst in einer for-Schleife zu verarbeiten oder zu versuchen, die Namen auf eine begrenzte Menge zu beschränken und untergeordnete Werte zu verwenden.SELECTs /JOINs. Diese zweite Option ist jedoch nicht ideal, wenn ein neuer Name hinzugefügt wird. Ich muss diese Abfrage erneut aufrufen.

Bitte sag mir, dass ich etwas Offensichtliches verpasst habe

Antworten auf die Frage(1)

Ihre Antwort auf die Frage