56,687
社区成员
发帖
与我相关
我的任务
分享
DELIMITER $$
CREATE FUNCTION `fun1`(str1 varchar(100)) RETURNS varchar(50)
begin
DECLARE str2 varchar(100);
set str2 = str1;
while instr(str2,'/') != 0 do
set str2 = substring(str2,instr(str2,'/')+1);
end while;
return str2;
end$$
DELIMITER ;
select fun1('DELL/2;LENOVO/3;HP/4;')
这个结果是:4; 希望得到的结果是:9
CREATE FUNCTION `fun1`(str1 varchar(100))
RETURNS varchar(50)
begin
DECLARE p int DEFAULT 1;
DECLARE v varchar(50) DEFAULT 0;
set p = locate('/',str1, p)+1;
while p > 1 do
set v = v+substring(str1, p,locate(';',str1,p)-p);
set p = locate('/',str1, p)+1;
end while;
return v;
end