将执行语句的结果放入 table in MySQL

put results of execute statement into table in MySQL

MySQL pivot efficiency

我想知道如何在 MySQL 中调整 table 的股票价格。共识似乎是这不是一件好事。我最初希望每一列是一个 ID 号,每一行是一个日期。通过将每一列设为日期,每行设为 ID 号,我获得了更快的速度:

  SET @@group_concat_max_len = 1000000;
  SET @sql = NULL;
  SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(IF(ddate = ',
      'ddate',
      ',closing_price, NULL)) AS ''',
      DATE_FORMAT(ddate,'%Y%m%d'),''''
      )
  ) INTO @sql
  FROM rawdatatable;
  SET @sql = CONCAT('SELECT idnum , ', @sql, ' FROM rawdatatable GROUP BY idnum');
  SELECT @sql;
  PREPARE stmt FROM @sql;
  EXECUTE stmt;

有什么方法可以将 EXECUTE 语句的结果放入 table 中,其中每个列名都是不同的 ddate

更改此行

SET @sql = CONCAT('SELECT idnum , ', @sql, ' FROM rawdatatable GROUP BY idnum');

SET @sql = CONCAT('CREATE TABLE blah AS SELECT idnum , ', @sql, ' FROM rawdatatable GROUP BY idnum');

尝试像@Desolator 所说的那样将结果放入临时 table。 MySQL console

中的类似内容
mysql>CREATE TABLE temp_result AS
      SELECT * FROM rawdatatable
        WHERE ...;