我有三列的表(state|id,country|id,state|name),还有像这样的管道分隔字符串(1 | 2 | )。
现在我想做什么,每当我点击触发器在那个时候,无论这个管道分隔字符串转换成列名一样
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\u str,它将值除以一
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '')
我试过这样做,但不管用。
1条答案
按热度按时间ewm0tg9j1#
使用子字符串索引从分隔符位置拆分字符串,如下所示: