MySQL数据库动态行转列的实现方法(2)_MySQL数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

MySQL数据库 动态行转列的实现方法(2)

作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0

本篇关键词:方法实现动态数据库
黑客防线网安网讯:   set @stmt3 = concat(’select ’,@temp,’ from ’,$schema_name,’.’  ,$table_name,’ limit ’,j,’,1 into @temp2;’);       prepare s3 from @stmt3;       execute s3;      ...

   set @stmt3 = concat(’select ’,@temp,’ from ’,$schema_name,’.’
 

,$table_name,’ limit ’,j,’,1 into @temp2;’);
      prepare s3 from @stmt3;
      execute s3;
      set str = concat(str,’"’,@temp2,’"’,’,’);
      deallocate prepare s3;
      set @stmt3 = ’’;
      set j = j+1;
    end loop loop3;
    set str = left(str,length(str)-1);
    -- insert new data into table
    set @stmt4 = concat(’insert into test.temp’,str,’;’);
    prepare s4 from @stmt4;
    execute s4;
    deallocate prepare s4;
    set @stmt4 = ’’;
    set s=s+1;
  end loop loop2;
END$$

DELIMITER ;

 

以下是测试结果:
======
select * from a;
select * from b;
select * from salary;

call sp_row_column_wrap(’test’,’a’);
select * from test.temp;
call sp_row_column_wrap(’test’,’b’);
select * from test.temp;
call sp_row_column_wrap(’test’,’salary’);
select * from test.temp;

 

query result(2 records)
aid title 
1 111 
2 222 


query result(3 records)
bid aid image time 
1 2 1.gif 2007-08-08 
2 2 2.gif 2007-08-09 
3 2 3.gif 2007-08-08 


query result(7 records)
id cost des Autoid 
1 10 aaaa 1 
1 15 bbbb 2 
1 20 cccc 3 
2 80 aaaa 4 
2 100 bbbb 5 
2 60 dddd 6 
3 500 dddd 7 


query result(2 records)
1 2 
1 2 
111 222 


query result(4 records)
1 2 3 
1 2 3 
2 2 2 
1.gif 2.gif 3.gif 
2007-08-08 2007-08-09 2007-08-08 

 

query result(4 records)
1 2 3 4 5 6 7 
1 1 1 2 2 2 3 
10 15 20 80 100 60 500 
aaaa bbbb cccc aaaa bbbb dddd dddd 
1 2 3 4 5 6 7 

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-8905-1.html
网站维护教程更新时间:2012-03-20 05:02:44  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer