我这里抛一块砖,希望您能引玉。
按照以下步骤执行即可,是一个例子,应该能满足您的要求。
首先,建表脚本。
CREATE TABLE `table1` (
`KEY` VARCHAR(2) NOT NULL DEFAULT '',
`VALUE` VARCHAR(3) NOT NULL DEFAULT ''
) ;
然后,插入测试数据,您可以在这个基础上,随意添加、修改、删除数据。
insert into `table1`(`KEY`,`VALUE`) values
('1','蓝色'),
('1','红色'),
('2','大号'),
('2','小号'),
('61','精品'),
('61','普通品');
最后,执行以下代码,不是一条一条的单独执行,而是全部选择后,一起执行。
SET @R1 := 0 ;
SET @R2 := 0 ;
SET @S := '' ;
SELECT CONCAT("SELECT @R2:=@R2+1 S1,CONCAT_WS('/',",S1,') S2 FROM ' ,S2,' WHERE ',S3,';') INTO @S FROM (SELECT GROUP_CONCAT('T',R,'.','VALUE') S1,GROUP_CONCAT('TABLE1',' T',R) S2,REPLACE(GROUP_CONCAT('T',R,'.KEY=',T.KEY),',',' AND ') S3 FROM (SELECT @R1:=@R1+1 R,T.KEY FROM TABLE1 T GROUP BY T.KEY) T) T ;
PREPARE stmt1 FROM @S ;
EXECUTE stmt1 ;