Maison > Article > base de données > Comment créer un tableau croisé dynamique dans MySQL avec des noms de colonnes entiers ?
Créer un tableau croisé dynamique dynamique avec des noms de colonnes entiers dans MySQL pose un léger défi. Lors de l'exécution de la requête fournie, vous pouvez rencontrer une erreur si les valeurs user_id sont des nombres entiers. Pour résoudre ce problème, nous devons envelopper les valeurs user_id dans des backticks (`).
La requête SQL ajustée ressemble à ceci :
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;
La modification clé ici est l'ajout de backticks autour des valeurs user_id dans l'instruction GROUP_CONCAT. En faisant cela, nous nous assurons que les valeurs user_id sont traitées comme des chaînes au lieu de noms de colonnes.
Démo SQL Fiddle : https://sqlfiddle.com/#!2/eab24/ 4
Maintenant, même avec des valeurs user_id entières, le tableau croisé dynamique sera généré avec succès.
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!