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

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

DDD
Freigeben: 2024-11-12 22:59:02
Original
457 Leute haben es durchsucht

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

Dynamische Pivot-Tabelle in MySQL

Bei der Arbeit mit einer Datenbank ist es oft nützlich, Pivot-Tabellen zu erstellen, um Daten über mehrere Spalten hinweg zusammenzufassen. Wenn die Spaltennamen jedoch dynamisch sind, kann dies eine Herausforderung darstellen. In diesem Artikel wird erläutert, wie eine dynamische Pivot-Tabelle in MySQL erstellt wird, insbesondere wenn die Benutzer-IDs Ganzzahlen sind.

In dem vom Benutzer bereitgestellten Beispiel schlug die Abfrage fehl, wenn die Benutzer-ID eine Ganzzahl war, funktionierte jedoch einwandfrei es war eine Schnur. Das Problem entstand, weil die Werte direkt als Spaltennamen verwendet wurden. Um dieses Problem zu beheben, müssen die Werte in Backticks (`) eingeschlossen werden, um gültige Spaltennamen zu erstellen.

Zum Beispiel anstelle von:

max(case when user_id = 1 then score end) as 1
Nach dem Login kopieren

Die korrigierte Syntax wäre:

max(case when user_id = 1 then score end) as `1`
Nach dem Login kopieren

Zusätzlich müssen bei der dynamischen Auswahl der Spalten auch die Backticks berücksichtigt werden. Die korrigierte Abfrage würde wie folgt aussehen:

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

Durch diese Anpassungen kann die Pivot-Tabelle erfolgreich generiert werden, auch wenn die Benutzer-IDs ganze Zahlen sind.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine dynamische Pivot-Tabelle 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage