2 qq 28285379 qq_28285379 于 2017.01.07 22:32 提问

mysql 拆分A表字段存到临时表

mysql 拆分A表字段存到临时表

现有表 tba
tba

求拆分成tbb
tbb

3个回答

u010528826
u010528826   2017.01.08 00:01
已采纳

SELECT t.id as id, substring_index(substring_index(t.str,',', b.help_topic_id + 1), ',', -1) as str
FROM tba t join mysql.help_topic b ON b.help_topic_id < (LENGTH(t.str) - LENGTH(REPLACE(t.str, ',', '')) + 1);

参考:http://blog.csdn.net/ldl22847/article/details/47609727

qq_28285379
qq_28285379   2017.01.07 23:25

跪求大神帮忙。急急急急。

JE_GE
JE_GE   2017.01.08 09:57
 CREATE DEFINER=`root`@`localhost` PROCEDURE `split`(in _string varchar(300))  
BEGIN  
# 求分割符号','的位置  
declare _index int;  

#使用临时表存储分割后的结果  
drop temporary table if exists tmp_strs;  
create temporary table tmp_strs(  
str int(10) unsigned  
);  

set _index = locate(',',_string);  
while _index > 0  
do  
insert into tmp_strs values(left(_string,_index-1));#将子字符串存入临时表  
set _string =substr(_string from _index+1);  
set _index = locate(',',_string);  
end while;  

if length(_string) >= 0 then  
insert into tmp_strs values(_string);  
end if;  

END  
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MySQL字符分割并存储到临时表中
创建存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `split`(in _string varchar(300)) BEGIN # 求分割符号','的位置 declare _index int; #使用临时表存储分割后的结果 drop temporary table if exists tmp_strs; create temporary t
将存储过程执行的结果保存到临时表
将存储过程执行的结果保存到临时表 1、创建一个字段名称和数量与存储过程的执行结果一致的临时表; 2、insert into #t1 EXEC Porc1 'a' 示例: CREATE PROCEDURE Proc1 @a varchar(50) AS SELECT Id, NAME FROM Table1 WHERE NAME=@a GO CR
sql把逗号分隔的字符串拆成临时表
在与数据库交互的过程中,我们经常需要把一串ID组成的字符串当作参数传给存储过程获取数据。很多时候我们希望把这个字符串转成集合以方便用于in操作。 有两种方式可以方便地把这个以某种符号分隔的ID字符串转成临时表 方式一:通过charindex和substring。
mysql创建临时表,将查询结果插入已有表中
今天遇到一个很棘手的问题,想临时存起来一部分数据,然后再读取。我记得学数据库理论课老师说可以创建临时表,不知道mysql有没有这样的功能呢?临时表在内存之中,读取速度应该比视图快一些。然后还需要将查询的结果存储到临时表中。下面是创建临时表以及插入数据的例子,以供大家参考。 A、临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表: 1)定义字段   C
mysql表的垂直拆分和水平拆分
垂直拆分 垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张表; 把text,blob等大字段拆分出来放在附表中; 经常组合查询的列放在一张表中; 垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用jion关键起来即可; 水平拆分 水平拆分是指数据表行的拆分,
mysql 大量数据插入(可用于数据添加字段不能添加的情况,因为会copy临时表。这样可以手动分批处理)
delimiter $$ drop procedure if exists P_insert_sale_order_detail_3 $$ create procedure P_insert_sale_order_detail_3(out p_num int,out p_num2 int) BEGIN select  @p_num:=min(orde
SQL 递归查询,并将结果集保存在临时表中
给定一个节点ID,查询此节点下的全部节点,并将结果集保存在临时表中
如何将存储过程执行后的结果集放入临时表
如果能够得到存储过程结果集的表结构insert into #tmp exec sp_who否则select * into #tmp from OPENROWSET(SQLOLEDB,SERVER=server;uid=sa;pwd=sapwd;Database=master,exec 存储过程名) as a 如果存储过程中用到临时表,要用set fmtonly offselect
临时表自增字段使用技巧
drop table #t select did=identity(int,1,1) ,* into #t from v_question Select * from #t
临时数据转化为mysql表与现有表进行join
问题:系统自动产生一条数据:例如:11271851,13670999,22306155, 需要与mysql中的表table1进行join查询,join条件为 column1 = 11271851(按,分隔后的列) 解决方式:1,将数据转换为临时表: SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(tempAdzone.adzone, ',', numbers.n)