Maison >base de données >tutoriel mysql >Comment créer des tableaux croisés dynamiques avec des noms de colonnes entiers dans MySQL ?

Comment créer des tableaux croisés dynamiques avec des noms de colonnes entiers dans MySQL ?

DDD
DDDoriginal
2024-11-15 08:40:02487parcourir

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

Tableaux croisés dynamiques dans MySQL

Lorsque vous essayez de générer un tableau croisé dynamique avec des colonnes dynamiques, il est crucial de vous assurer que les noms des colonnes sont manipulé correctement. Dans la situation fournie, le user_id est un entier, ce qui peut causer des problèmes s'il n'est pas formaté correctement.

Pour résoudre ce problème, il est nécessaire d'envelopper les valeurs user_id entre des guillemets (`) pour les spécifier comme noms de colonnes et éviter leur interprétation erronée en tant que valeurs numériques. Voici la requête modifiée :

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;

Cette modification garantit que les valeurs user_id sont traitées comme des noms de colonnes, ce qui donne un tableau croisé dynamique avec des colonnes dynamiques représentant chaque user_id unique et leurs scores correspondants.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn