我有以下字符串 156,12,99,12,14,17 有时这个字符串更长和/或更短,涉及字母和数字,例如cc,21,366,ddd。
理想的输出是 output:
我有这个,它给了我列中的分隔数:
select
LENGTH(a.column) - LENGTH(REPLACE(a.column, ',', '')) + 1 AS numberofdelimit
FROM <mydatabase>.<mytable> as a
where a.id = 4;
我也知道这段代码会给我分隔的文本:
SUBSTRING_INDEX(a.column, ',', numbers.n)
我努力将它们放在一起将值放入新行。
答案 0 :(得分:0)
好吧,如果你不再需要ID,你可以这样做:
create table `ids` (
`id` int
);
create table `input` (
str varchar(256)
);
insert into ids (`id`) values
(1), (2), (3), (4), (10), (20), (30), (40);
insert into input (`str`) values ('1,2,10,30');
然后像这样匹配
select
*
from
input inner join ids
on concat(',',str,',') rlike concat(',', id, ',');
但它确实要求你有一张桌子。
但这可能是一个开始。