mysql split 逗号分隔_MYSQL :逗号分隔串表,分解成竖表

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

admin

实现的效果是

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

admin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值