残念ながら、mysqlは関数が配列またはテーブル(私が知っている)を返すことを許可しないので、これを少しハックする必要があります。
ストアドプロシージャのサンプルは次のとおりです:
DELIMITER $$
create function splitter_count (str varchar(200), delim char(1)) returns int
return (length(replace(str, delim, concat(delim, ' '))) - length(str)) $$
CREATE PROCEDURE tokenize (str varchar(200), delim char(1))
BEGIN
DECLARE i INT DEFAULT 0;
create table tokens(val varchar(50));
WHILE i <= splitter_count(str, delim) DO
insert into tokens(val) select(substring_index(SUBSTRING_INDEX(str, delim, i+1), delim, -1));
SET i = i + 1;
END WHILE;
END $$
DELIMITER ;
これにより、文字列がトークン化され、行ごとに1つのトークンで、「トークン」と呼ばれるテーブルに値が挿入されます。あなたはそれを修正して、かなり簡単に何か役に立つことをすることができるはずです。また、入力長を200から増やすこともできます。