MySQL拆分逗号分隔的字符串到临时表中
您可以使用RegEx将逗号分隔的字符串解析为MySQL中的临时表吗?
'1|2|5|6' into temp table with 4 rows.
回答:
这个问题与Mysql可以拆分列差不多吗?
MySQL没有拆分字符串函数,因此您必须解决。使用上面答案页中列出的方法之一分割数据后,您就可以对数据进行任何处理。
您可以遍历该自定义函数,并在返回空值时中断它,您必须播放并学习一些语法(或者至少是我愿意),但是mysql中FOR循环的语法是:
http://www.roseindia .net / sql / mysql-example /
for.shtml
您可以对其进行迭代,从而增加以下函数中的位置:
CREATE FUNCTION SPLIT_STR( x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
- (信贷:https
- //blog.fedecarg.com/2009/02/22/mysql-split-string-
function/)
如果找不到匹配项,则应返回“”,因此,如果找不到匹配项,则中断循环。这将允许您仅使用mysql解析拆分字符串并将插入查询运行到临时表中。但是,为什么不只使用php之类的脚本语言来完成这种工作呢?:(
循环语法代码:
DELIMITER $$CREATE PROCEDURE ABC(fullstr)
BEGIN
DECLARE a INT Default 0 ;
DECLARE str VARCHAR(255);
simple_loop: LOOP
SET a=a+1;
SET str=SPLIT_STR(fullstr,"|",a);
IF str='' THEN
LEAVE simple_loop;
END IF;
#Do Inserts into temp table here with str going into the row
insert into my_temp_table values (str);
END LOOP simple_loop;
END $$
以上是 MySQL拆分逗号分隔的字符串到临时表中 的全部内容, 来源链接: utcz.com/qa/433737.html