MySQL分割字符串的实现

 2022-10-27    370  

MySQL分割字符串应该如何实现呢?下面就为您介绍MySQL分割字符串的实现方法步骤,希望可以让您对MySQL分割字符串有更多的了解。

例如:update `edw_video` set company = substring(keyword,1,length(SUBSTRING_INDEX(keyword,",",1)))

MySQL分割字符串的实现

名称:SPLIT_SUB_STR1(取得split字符串的***段) 参数:str 要split的目标字符串 (输入格式为‘11,2,3,4,5,6’; 输出为‘2,3,4,5,6’) delimiter 分隔符 (‘,’) split1 输出***项(‘11’) 存储过程 CREATE DEFINER=`root`@`%` PROCEDURE `SPLIT_SUB_STR0`(inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split1 VARCHAR(20))

BEGIN # 名称 SPLIT_SUB_STR1 取得分割字符串的***段字符 # 参数inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split0 VARCHAR(20) # 输入完整字符串,输出去掉取得***项后的字符串; 分隔符; 输出split的***个项目

#分割出***段字符串不包括分隔符的长度 DECLARE SUB_STR_LENGTH INT;

# SUBSTRING_INDEX函数取得目标字符串左侧第n个分割符左侧的部分,n为负时返回右侧第n个的右部分 SET SUB_STR_LENGTH = length(SUBSTRING_INDEX(str,delimiter,1));

#截取***段字符串,不包括分隔符,放入输出参数里 SET split0 = substring(str, 1, SUB_STR_LENGTH);

# 取得去掉***个字符串和分隔符的字符串,进行下次循环取得下个字符串 SET str = substring(str, SUB_STR_LENGTH + 2 ); #测试一下输出是否正确 #SELECT SUB_STR_LENGTH, SUB_STR_SPLIT0, STR; END

调用实例

CREATE DEFINER=`root`@`%` PROCEDURE `test`() BEGIN #目标字符串 set @a = ’1,2,3,4,5,6,12‘; # 分隔符 set @c = ‘,’; # 存储风格后的字符串 set @b = ”;

REPEAT # 调用上面的存储过程 CALL SPLIT_SUB_STR0(@a, ‘,’, @c); #将取得的字符串拼接,测试用 set @b = concat(@b, @c); #当目标字符串为空时,停止循环 UNTIL @a = ” END REPEAT; # 查看结果 select @a, @c, @b;

END;

  •  标签:  
  • MySQL
  •  

原文链接:https://77isp.com/post/4300.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。