Heim  >  Artikel  >  Datenbank  >  Wie erstelle ich eine dynamische Pivot-Tabelle in MySQL mit ganzzahligen Spaltennamen?

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-16 18:51:03258Durchsuche

How to Create a Dynamic Pivot Table in MySQL with Integer Column Names?

Dynamische MySQL-Pivot-Tabelle mit ganzzahligen Spaltennamen

Das Erstellen einer dynamischen Pivot-Tabelle mit ganzzahligen Spaltennamen in MySQL stellt eine leichte Herausforderung dar. Beim Ausführen der bereitgestellten Abfrage kann ein Fehler auftreten, wenn die user_id-Werte ganze Zahlen sind. Um dieses Problem zu beheben, müssen wir die user_id-Werte in Backticks (`) umschließen.

Die angepasste SQL-Abfrage sieht so aus:

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;

Die wichtigste Änderung hier ist das Hinzufügen von Backticks um die user_id-Werte in der GROUP_CONCAT-Anweisung herum. Dadurch stellen wir sicher, dass die user_id-Werte als Zeichenfolgen und nicht als Spaltennamen behandelt werden.

SQL Fiddle Demo: https://sqlfiddle.com/#!2/eab24/ 4

Jetzt wird die dynamische Pivot-Tabelle auch mit ganzzahligen user_id-Werten erfolgreich generiert.

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

Stellungnahme:
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