您的位置:首页 > 数据库 > MySQL

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: