Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich dynamische Pivot-Tabellen in MySQL mit ganzzahligen Benutzer-IDs?

Wie erstelle ich dynamische Pivot-Tabellen in MySQL mit ganzzahligen Benutzer-IDs?

Mary-Kate Olsen
Freigeben: 2024-11-14 16:13:02
Original
404 Leute haben es durchsucht

How to Create Dynamic Pivot Tables in MySQL with Integer User IDs?

Pivot-Tabellen in MySQL mit dynamischen Spalten

Diese Frage befasst sich mit der Herausforderung der Erstellung von MySQL-Pivot-Tabellen mit dynamischen Spalten. Während die Lösung effektiv funktioniert, wenn user_id als Zeichenfolge definiert ist, schlägt sie fehl, wenn auf Ganzzahlwerte gestoßen wird.

Der bereitgestellte Codeausschnitt veranschaulicht den ersten Versuch, die Pivot-Tabelle zu erstellen. Um das Problem im Zusammenhang mit ganzzahligen user_id-Werten zu beheben, liegen die Korrekturen jedoch in der Art und Weise, wie die Spaltennamen innerhalb der dynamischen SQL-Abfrage erstellt werden.

Der ursprüngliche Code:

...
GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when user_id = ''',
      user_id,
      ''' then score end) AS ',
      user_id
    )
  ) INTO @sql
Nach dem Login kopieren

int user_id Werte verursachen das Problem, da sie direkt als Spaltennamen verwendet werden. Um dies zu beheben, müssen diese Werte in Backticks (`) eingeschlossen werden. Der korrigierte Code passt dies an:

...
GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when user_id = ''',
      user_id,
      ''' then score end) AS `',
      user_id, '`'
    )
  ) INTO @sql
Nach dem Login kopieren

Die endgültige, korrigierte Abfrage:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when user_id = ''',
      user_id,
      ''' then score end) AS `',
      user_id, '`'
    )
  ) INTO @sql
FROM  measure2;

SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' 
                  FROM measure2 
                  GROUP BY inspection_date');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Nach dem Login kopieren

Mit diesen Anpassungen kann die Pivot-Tabelle nun auch beim Umgang mit ganzzahligen user_id-Werten erfolgreich generiert werden.

Das obige ist der detaillierte Inhalt vonWie erstelle ich dynamische Pivot-Tabellen in MySQL mit ganzzahligen Benutzer-IDs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage