ホームページ > データベース > mysql チュートリアル > MySQL で整数のユーザー ID を使用して動的ピボット テーブルを作成する方法

MySQL で整数のユーザー ID を使用して動的ピボット テーブルを作成する方法

Mary-Kate Olsen
リリース: 2024-11-14 16:13:02
オリジナル
404 人が閲覧しました

How to Create Dynamic Pivot Tables in MySQL with Integer User IDs?

動的列を含む MySQL のピボット テーブル

この質問は、動的列を含む MySQL ピボット テーブルを作成するという課題に対処します。 user_id が文字列として定義されている場合、このソリューションは効果的に機能しますが、整数値が検出されると失敗します。

提供されたコード スニペットは、ピボット テーブルを作成する最初の試行を示しています。ただし、整数の user_id 値に関連する問題を解決するには、動的 SQL クエリ内での列名の構築方法が修正されます。

元のコード:

...
GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when user_id = ''',
      user_id,
      ''' then score end) AS ',
      user_id
    )
  ) INTO @sql
ログイン後にコピー

int user_id値は列名として直接使用されているため、問題が発生します。これに対処するには、これらの値をバックティック (`) で囲む必要があります。修正されたコードは次を調整します:

...
GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when user_id = ''',
      user_id,
      ''' then score end) AS `',
      user_id, '`'
    )
  ) INTO @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;
ログイン後にコピー

これらの調整により、整数の user_id 値を処理する場合でもピボット テーブルを正常に生成できるようになりました。

以上がMySQL で整数のユーザー ID を使用して動的ピボット テーブルを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート