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
实现的效果是
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
MYSQL :逗号分隔串表,分解成竖表的更多相关文章
- Mysql 表转换成 Sqlite表
目前的转换仅仅支持对没有外键的Mysql数据表 准备: 下载安装 Sqlite Expert 软件 一 获取Mysql中的.sql文件,获取过程省略可以直接导出sql文件 二 在Sqlite Expe ...
- SQL竖表转换成横表统计
#创建表user_score create table user_score ( name varchar(20), subjects varchar(20), score int ); insert ...
- 20190321xlVBA_明细信息表汇总成数据表
刚开始能把代码敲得行云流水的时候,写代码是种乐趣.有了功利目的之后,重复的工作写多几次,厌烦的情绪四处弥漫. 去年八月份正好写了一回,还能支持控件,在此备忘. Public Sub Informati ...
- MySQL中横表和竖表相互转换
一 竖表转横表 1. 首先创建竖表 create table student ( id varchar(32) primary key, name varchar (50) not null, su ...
- .Net 将一个DataTable分解成多个DataTable
这两天遇到一个问题,我们所接触 的一个系统在导出数据到Excel的时候,产生了内存溢出的错误.原因在于数据过大,它导出是将所有数据存放在一个DataSet的一个表中,再将这个数 据集放入session ...
- mysql单个表拆分成多个表
一.横向拆分 create table 新表的名称 select * from 被拆分的表 order by id limit int1,int2 int1为其实位置,int2为几条 注意:这样拆分后 ...
- MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)
转载. https://blog.csdn.net/mysteryhaohao/article/details/51669741 锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具.在计算机中,是 ...
- MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询
MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...
- 面试官:为什么mysql不建议执行超过3表以上的多表关联查询?
概述 前段时间在跟其他公司DBA交流时谈到了mysql跟PG之间在多表关联查询上的一些区别,相比之下mysql只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort ...
随机推荐
- .net ref关键字在引用类型上的使用
只接上干货. namespace ConsoleApplication1 { class Person { public string UserName { get; set; } } class P ...
- Unity笔记
1.使某个对象上的脚本失效和生效: GameObject.Find("xxx").transform.GetComponent<xxx>().enabled = fal ...
- 【转】Android与JNI(二) -- 不错
原文网址:http://www.cnblogs.com/eddy-he/archive/2012/08/09/2629974.html 软件版本: ubuntu10.04 java version & ...
- linux下挂载另一系统硬盘。
问题描述: Error mounting /dev/sda5 at /media/wangzheng/办公: Command-line `mount -t "ntfs" -o &q ...
- 【最短路】血色先锋军(scarlet) 解题报告
问题来源 BYVoid魔兽世界模拟赛 [问题描述] 巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物.孤立于联盟和部落的血色先锋军很快就遭 ...
- Threading Module源码概述(一)
Python的Threading模块是建立在thread module基础上的一个模块,在threading模块中,暴露着许多thread模块的属性.比如threading._get_ident实际上 ...
- java项目使用Echarts 做柱状堆叠图,包含点击事件
基础知识请自行百度查看,以下直接贴出实现代码: <%@ page pageEncoding="UTF-8"%><!DOCTYPE html><html ...
- oracle权限问题
Assign the "Create global objects" user right to the non-Administrator account. 1. Click S ...
- Python里的map、reduce、filter、lambda、列表推导式
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- 关于ETL的几种运行
一:代码部分 1.新建maven项目 2.添加需要的java代码 3.书写mapper类 4.书写runner类 二:运行方式 1.本地运行 2. 3. 三:本地运行方式 1.解压hadoop到本地 ...