首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

Mysql队列转换,欢迎讨论指正

2012-08-28 
Mysql行列转换,欢迎讨论指正查了好多资料,在Mysql存储过程中都无法实现我的功能,其实在Oracle中会很简单,

Mysql行列转换,欢迎讨论指正
查了好多资料,在Mysql存储过程中都无法实现我的功能,其实在Oracle中会很简单,第一次接触Mysql存储过程搞了一天多时间,郁闷,贴出来欢迎大家指正,或者有更好的方法大家讨论。
需求很简单(Orcale中 mssql中很容易实现):将用户组的列拼成一行,如:
+--------------------+
name
+====================+
一般客户
VIP客户
其他客户
---------------------------
拼成:一般客户,VIP客户,其他客户
我要用Mysql存储过程实现,需要嵌套cursor才能实现功能(因为还有别的表联合),可是嵌套cursor无法实现(我是没查到到目前mysql5.0版式不成),只有想其他办法,下边是我的代码:

drop procedure test111;delimiter//create procedure test111()beginselect count(*) into @n from t_custom_group order by id desc;set @i=1;set @str = '';set @tmp = '';set @strRet = '';while @i <= @n do  select @tmp := name from t_custom_group where LOCATE(concat(',',name,','), @str) = 0 order by id desc;  set @str = concat(@str,',',@tmp,',');  set @strRet = concat(@strRet,@tmp,',');  set @i = @i+1;select @strRet;end while;end


不知道有没有其他更好的方法,呵呵 1 楼 jessen 2009-04-28   谢谢楼主!

热点排行