MySQL 将查询出来的一组数据拼装成一个字符串

1 前言

由于项目中有一个需求,需要把当日当周的排行榜数据归档,以便后期查询和发放奖励。然而发现,mysql的变量只能存一个变量值,然后如果要储存一条记录,可以使用CONCAT_WS,如果要储存多条记录,则再其基础上使用GROUP_CONCAT方法,再配合order by 某字段即可。

2 代码  

//默认值查询num>0,条件可以按需改动
select GROUP_CONCAT(CONCAT_WS("|",t1.uid,num,name) order by num desc) into @content from rank t1,users t2 where t1.uid=t2.uid and num > 0;

分析:缺点,此方法无法用limit来分段查询,如果要使用limit分段才行,可以在条件num这边下手,代码如下:

//获取第30名次用户的num数值
SET @limit =  select num from rank order by num limit 29,1
//前面代码的条件就可以改成
num>@limit,   

3 小结

作为记录使用。如果你们有更好的方案,请你也告诉我一下,互相交流,谢谢!

猜你喜欢

转载自www.cnblogs.com/fanbi/p/9356740.html