mysql导入竖杠分割的数据_MYSQL :逗号分隔串表,分解成竖表

MYSQL :逗号分隔串表,分解成竖表

[sql]

DROP TEMPORARY TABLE IF EXISTS Temp_Num ;

CREATE TEMPORARY TABLE Temp_Num ( xh INT PRIMARY KEY ); -- 创建数字辅助表

SET @i = 0;

INSERT INTO Temp_Num(xh) -- 写入数字辅助表

SELECT @i := @i+1

FROM AdDataCenter.`Ad_Targeting_Mobisage` a

LIMIT 0, 100 ;

SELECT b.AdGroupID , SUBSTRING( str_split , a.xh , LOCATE(',',CONCAT( str_split ,','), a.xh ) - a.xh ) AS splitstr

FROM Temp_Num a

CROSS JOIN

(SELECT AppCategory AS str_split ,app.*

FROM AdDataCenter.Ad_Targeting_Mobisage app

WHERE app.AdTargetingID IN (1,2,3,4) ) b

WHERE a.xh <= LENGTH( str_split )

AND SUBSTRING( CONCAT(',', str_split ), a.xh, 1) = ','

LIMIT 0 ,1000 ;

SELECT AppCategory AS str_split ,app.*

FROM AdDataCenter.Ad_Targeting_Mobisage app

WHERE app.AdTargetingID IN (1,2,3,4);

原数据

str_split

AdTargetingID

---------------------------------------------------------------------- ---------------

1,10,11,12,13,14,15,16,19,2,20,21,22,24,25,26,27,28,29,3,31,32,4,5,6,8 2

1,10,11,13,14,15,16,2,20,21,22,25,26,27,28,29,3,31,32,4,6,8

3

1,10,11,12,13,14,15,16,19,20,21,22,25,27,28,3,32,4,6,8 4

实现的效果是

AdGroupID splitstr

--------- ----------

2 1

2 10

2 11

2 12

2 13

2 14

2 15

2 16

2 19

2 2

2 20

2 21

2 22

2 24

2 25

2 26

2 27

2 28

2 29

2 3

2 31

2 32

2 4

2 5

2 6

2 8

3 1

3 10

3 11

3 13

3 14

3 15

3 16

3 2

3 20

3 21

3 22

3 25

3 26

3 27

3 28

3 29

3 3

3 31

3 32

3 4

3 6

3 8

4 1

4 10

4 11

4 12

4 13

4 14

4 15

4 16

4 19

4 20

4 21

4 22

4 25

4 27

4 28

4 3

4 32

4 4

4 6

4 8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值