MySQL で整数列名を使用した動的ピボット テーブルを作成するには、少し困難が伴います。 user_id 値が整数の場合、提供されたクエリを実行するときにエラーが発生する可能性があります。この問題を解決するには、user_id 値をバッククォート (`) で囲む必要があります。
調整された SQL クエリは次のようになります:
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;
ここでの重要な変更は、バッククォートの追加です。 GROUP_CONCAT ステートメントの user_id 値の周囲。これにより、user_id 値が列名ではなく文字列として扱われるようになります。
SQL Fiddle Demo: https://sqlfiddle.com/#!2/eab24/ 4
これで、user_id 値が整数であっても、動的ピボット テーブルが正常に生成されます。
以上がMySQL で整数列名を使用して動的ピボット テーブルを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。