ホームページ >データベース >mysql チュートリアル >MySQL で整数のユーザー ID を使用して動的ピボット テーブルを作成する方法
MySQL の動的ピボット テーブル
データベースを使用する場合、複数の列にわたるデータを要約するためにピボット テーブルを作成すると便利なことがよくあります。ただし、列名が動的である場合、問題が発生する可能性があります。この記事では、特にユーザー ID が整数の場合に、MySQL で動的ピボット テーブルを作成する方法について説明します。
ユーザーが提供した例では、ユーザー ID が整数の場合はクエリが失敗しましたが、ユーザー ID が整数の場合はクエリが正常に機能しました。それは文字列でした。この問題は、値が列名として直接使用されていたために発生しました。これを解決するには、値をバッククォート (`) で囲んで有効な列名を作成する必要があります。
たとえば、
max(case when user_id = 1 then score end) as 1
の代わりに、修正された構文は次のようになります。
max(case when user_id = 1 then score end) as `1`
さらに、列を動的に選択する場合は、バッククォートも含める必要があります。修正されたクエリは次のようになります。
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;
これらの調整を行うことで、ユーザー ID が整数の場合でもピボット テーブルを正常に生成できます。
以上がMySQL で整数のユーザー ID を使用して動的ピボット テーブルを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。