sql >> データベース >  >> RDS >> Mysql

MysqlMySQLまたはPHP行を動的に2列に変換します

    FS_amountと同じように機能します 、動的列を生成するコードに新しい列を追加するだけです:

      SELECT GROUP_CONCAT(DISTINCT CONCAT(
          'MAX(IF(month = ''',
          month,
          ''' and year(date) = ',
          year(date),
          ', FS_amount, NULL)) AS `',
          CONCAT('FA_',month),
          '_',
          year(date),
          '`, ', 
          'MAX(IF(month = ''',
          month,
          ''' and year(date) = ',
          year(date),
          ', AS_amount, NULL)) AS `',
          CONCAT('AS_',month),
          '_',
          year(date),
          '`'      
          )
        order by date
      ) INTO @sql
      FROM tmp_results;
    

    ステートメントが作成するコードを確認する必要があります(たとえば、select @sql;を一時的に追加することによって) )、ただし、必要に応じてさらに列を追加するのは非常に簡単です。




    1. MariaDBSkySQLを使用してクラウドでより高く上昇

    2. MySQLキャストをブール値として

    3. MySQL-既存のデータを壊さずにデータベース内の既存の列のvarcharサイズを増やす方法は?

    4. Mysql:2つの列の間で値を選択する