首页 > 数据库 > mysql教程 > MySQL用数字辅助表实现复杂的列变行_MySQL

MySQL用数字辅助表实现复杂的列变行_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-01 13:31:35
原创
1169 人浏览过

bitsCN.com

MySQL用数字辅助表实现复杂的列变行

 

某天,QQ上一个圈子内的网友发来一个求助信息 :

PropID name   Amount3      元宝   22      乐豆   3
登录后复制

能否用一条sql 写成输出,就是复制对应Amount 的条数 :

PropID name3      元宝3      元宝2      乐豆2      乐豆2      乐豆
登录后复制

研究了下,用普通的group by sum if case when之类的搞不定,得换种思路,一时hang住了,就与网友Mr.W说起,他提供了数字辅助表的思路。

OK,搞定了,SQL如下:

select t1.propid,t1.name from tb t1,(select 1 as num union select 2 as num union select 3 as num ) t2 where t1.amount>= t2.num order by 1; 
登录后复制

MySQL用数字辅助表实现复杂的列变行_MySQL

中间的,

(select 1 as num union select 2 as num union select 3 as num ) t2
登录后复制
部分

最好你另外建一个num单列辅助表表,从1自增到N,给个几万就好,然后关联查方便一些自连接的sql判断,select貌似也没循环生成数字的功能。如下表nums


MySQL用数字辅助表实现复杂的列变行_MySQL
 

bitsCN.com
相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
添加不上信息
来自于 1970-01-01 08:00:00
0
0
0
volist获取信息失败
来自于 1970-01-01 08:00:00
0
0
0
linux 查看控制台信息?
来自于 1970-01-01 08:00:00
0
0
0
session登录信息
来自于 1970-01-01 08:00:00
0
0
0
python - Scrapy LOG信息输出到文件
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板