„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > MySQL Dynamic Pivottable Creation Guide: Ganzzahl Benutzer -ID

MySQL Dynamic Pivottable Creation Guide: Ganzzahl Benutzer -ID

Gepostet am 2025-04-13
Durchsuche:923

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, MySQL Pivot -Tabellen mit dynamischen Spalten zu erstellen. Während die Lösung effektiv funktioniert, wenn user_id als Zeichenfolge definiert wird, fällt sie bei der Begegnung mit Ganzzahlwerten fehl.

Der bereitgestellte Code -Snippet veranschaulicht den ersten Versuch, die Pivot -Tabelle zu erstellen. Um das Problem zu beheben, das sich auf ganzzahlige Benutzer -ID -Werte bezieht, liegen die Korrekturen in der Art und Weise, wie die Spaltennamen in der dynamischen SQL -Abfrage aufgebaut sind.

Der Originalcode:

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

int user_id -Werte verursachen das Problem, da sie direkt als Spaltennamen verwendet werden. Um dies zu beheben, müssen diese Werte in Backticks (`) eingewickelt 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

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;

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

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3