我正在创建数据透视表,我希望列名类似于value1,value2,value3 ....
CREATE TEMPORARY TABLE temp_table (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
value VARCHAR(255),
date DATETIME ,
person_id INT ) ;
这是我为专栏命名的部分。我尝试了ID,但是使用了多个personID,它会使ID随机出现。我正在尝试INTEGER AUTO_INCREMENT,但这会引发错误
SET SESSION group_concat_max_len = 1000000 ;
SELECT GROUP_CONCAT(DISTINCT CONCAT('MAX(IF(id = ''', c.id, ''', value, NULL)) AS "', **INTEGER auto_increment**, '"'))
INTO @column_sql1
FROM temp_table c ;
set @sql = concat("select person_id, ", @column_sql1, " from temp_table group by `person_id`");
select @sql;
prepare stmt from @sql;
execute stmt;
是否可以对每个值列进行编号,因此以后选择“第一”,“第二”和“第三”列时,可以为动态列名称选择不同的字段?
我也尝试了row_number和许多其他事情。似乎没有任何作用。
感谢您的帮助。
错误消息: “您的SQL语法有误;请查看与您的MySQL服务器版本相对应的手册,以获取在'INTeger auto_increment,'“'附近使用的正确语法)) INTO @ column_sql1“