mysql 一行转多列
2016-02-18 09:40
525 查看
/*
drop table tbl_name;
create table tbl_name (ID int ,mSize varchar(100));
insert into tbl_name values (1,'tiny,small,big');
insert into tbl_name values (2,'small,medium');
insert into tbl_name values (3,'tiny,big');
*/
SELECT * from tbl_name
-- 参考:
-- http://cenalulu.github.io/mysql/column-row-reverse/
-- http://www.uncletoo.com/html/mysql/1060.html
SELECT ID,mSize, substring_index(substring_index(m.mSize,',',num),',',-1) splitText
from (
SELECT *,
@row_number := CASE
WHEN @customer_no = id THEN @row_number + 1
ELSE 1
END AS num,
@customer_no := id as idsa
from (
SELECT b.* from (SELECT *, LENGTH(mSize) - LENGTH( REPLACE(mSize,',','') )+ 1 alls from tbl_name) a join (SELECT *, LENGTH(mSize) - LENGTH( REPLACE(mSize,',','') )+ 1 alls from tbl_name) b where a.alls <= b.alls
) s,(SELECT @customer_no := 0,@row_number := 0) as t
) m
drop table tbl_name;
create table tbl_name (ID int ,mSize varchar(100));
insert into tbl_name values (1,'tiny,small,big');
insert into tbl_name values (2,'small,medium');
insert into tbl_name values (3,'tiny,big');
*/
SELECT * from tbl_name
-- 参考:
-- http://cenalulu.github.io/mysql/column-row-reverse/
-- http://www.uncletoo.com/html/mysql/1060.html
SELECT ID,mSize, substring_index(substring_index(m.mSize,',',num),',',-1) splitText
from (
SELECT *,
@row_number := CASE
WHEN @customer_no = id THEN @row_number + 1
ELSE 1
END AS num,
@customer_no := id as idsa
from (
SELECT b.* from (SELECT *, LENGTH(mSize) - LENGTH( REPLACE(mSize,',','') )+ 1 alls from tbl_name) a join (SELECT *, LENGTH(mSize) - LENGTH( REPLACE(mSize,',','') )+ 1 alls from tbl_name) b where a.alls <= b.alls
) s,(SELECT @customer_no := 0,@row_number := 0) as t
) m
相关文章推荐
- mysql 查看所有存储过程
- MySQL数据类型和属性设置
- mysql死锁问题分析
- MySQL的嵌套事务实现
- mysql事务与mysql储存引擎
- Mysql事项,视图,函数,触发器命令
- 在内存中建立 MySQL 的临时目录(转)
- Mysql常用函数
- mysql校对规则设计编码命令
- .NET/Mysql-petatoco连接mysql数据库
- MySQL知识(二)——数据表的基本操作
- MySQL 作为新的 NoSQL 解决方案: 轻松应对亿级数据
- 古诗mysql数据库设计
- 连接MySQL数据库时常见故障问题的分析与解决
- MySQL limit分页查询优化写法
- solr对mysql中tinyint字段的处理方法
- mysql经纬度查询
- mysql调优
- MySQL主从复制原理
- Mysql“集群”和”主从“两者的区别