gpt4 book ai didi

mysql - 转换 '1|2|India' 此管道分隔字符串设置为列

转载 作者:行者123 更新时间:2023-11-29 17:32:01 25 4
gpt4 key购买 nike

我有一个包含三列的表(State_id、Country_id、state_name)。并且我有像这样的管道分隔字符串(1|2|ABC)。

现在,每当我点击触发器时,无论这个管道分隔的字符串是什么,我想要做的就是将其转换为列名称,例如

Insert INTO tablename values (1,2,ABC);

每次我都有不同的管道分隔字符串和不同的列。也许是 4 个或更多。

BEGIN
DECLARE a INT Default 0 ;
DECLARE str VARCHAR(255);
simple_loop: LOOP
SET a=a+1;
SET str=SPLIT_STR(new.remarks,"|",a);
IF str='' THEN
LEAVE simple_loop;
END IF;
insert into new.tablename values (str);
END LOOP simple_loop;

结束

我制作了 SPLIT_STR,它将值除以 1

RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '')

我已经尝试过这样的方法,但它不起作用。

最佳答案

使用substring_index从分隔符位置分割字符串,如下所示:

 Insert INTO tablename
select substring_index('1|2|ABC','|',1),
substring_index(substring_index('1|2|ABC','|',2),'|',-1),
substring_index('1|2|ABC','|',-1);

关于mysql - 转换 '1|2|India' 此管道分隔字符串设置为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50561116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com