gpt4 book ai didi

mysql - mySql 中是否有类似于 split() 方法的东西?

转载 作者:可可西里 更新时间:2023-11-01 07:55:19 25 4
gpt4 key购买 nike

我正在寻找一个存储过程,它将一个由标记分隔的字符串作为参数,然后在该过程中为该字符串中的每个项目运行一个 while 循环。

我在 mysql 文档中没有看到任何可以完成此任务的内容...有没有办法做到这一点?

最佳答案

不幸的是,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 ;

这会将您的字符串标记化,并将值插入名为“标记”的表中,每行一个标记。您应该能够很容易地修改它来做一些有用的事情。此外,您可能希望将输入长度从 200 增加。

关于mysql - mySql 中是否有类似于 split() 方法的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1077686/

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