MySQL:将数组作为单独的行输出
这是我的阵列:MySQL:将数组作为单独的行输出,mysql,Mysql,这是我的阵列: set @fruit = 'apples,oranges,passion fruit,bananas,pineapples'; 如何将它们输出到单独的行中,即: apples oranges passion fruit bananas pineapples 谢谢。在我的回答中,创建函数和/或临时表的替代方法是: SELECT @i , substring(@string, @start, @end-@start) str FROM <BigTable&g
set @fruit = 'apples,oranges,passion fruit,bananas,pineapples';
如何将它们输出到单独的行中,即:
apples
oranges
passion fruit
bananas
pineapples
谢谢。在我的回答中,创建函数和/或临时表的替代方法是:
SELECT @i
, substring(@string, @start, @end-@start) str
FROM <BigTable>
, ( SELECT @string := 'apples,oranges,passion fruit,bananas,pineapples'
, @start := 0
, @end := 0
, @i := 0
, @len := length(@string)
, @n := @len-length(replace(@string,',',''))+1
) t
WHERE (@i := @i+1) <= @n
AND (@start := @end+1)
AND (@end := if((@loc:=locate(',',@string,@start))=0,@len+1,@loc))
选择@i
,子字符串(@string,@start,@end-@start)str
从…起
,(选择@string:=“苹果、橙子、百香果、香蕉、菠萝”
,@start:=0
,@end:=0
,@i:=0
,@len:=长度(@string)
,@n:=@len长度(替换(@string,,,,,'')+1
)t
其中(@i:=@i+1)使用SUBSTRING\u INDEX
查找每个单词,然后使用print
输出它们检查此处尝试此链接:太好了,谢谢。我需要在@len:=length(@string)
的末尾添加+1
,以打印菠萝中的“s:-”,再次感谢