热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

mysql函数split的学习

mysql函数split的学习mysql5.*的版本现在没有split函数,但有些地方会用,在这里就简单记录一下:先设置:SETGLOBALlog_bin_trust_function_creators1;1.函数func_splitStringTotal:将字符串按...Syn

mysql函数split的学习
 
mysql 5.* 的版本现在没有split 函数,但有些地方会用,在这里就简单记录一下:
先设置:SET GLOBAL log_bin_trust_function_creators = 1; 
 
1. 函数func_splitStringTotal:将字符串按指定方式分割,并计算单元总数
   www.2cto.com  
Java代码  
DELIMITER $$    
CREATE FUNCTION `func_get_splitStringTotal`(    
f_string varchar(10000),f_delimiter varchar(50)    
) RETURNS int(11)    
BEGIN    
  return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));    
END$$    
DELIMITER ;    
 
2.函数func_splitString:将字符串按指定方式分割,获取指定位置的数
 
Java代码 www.2cto.com  
DELIMITER $$    
DROP function IF EXISTS `func_splitString` $$    
CREATE FUNCTION `func_splitString`    
( f_string varchar(1000),f_delimiter varchar(5),f_order int)   
  RETURNS varchar(255) CHARSET utf8    
BEGIN    
 
    declare result varchar(255) default '';    
    set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));    
    return result;    
END$$  
  
SELECT func_splitString('1,2,3,4,5,6,7',',',1);  
 
3.过程splitString 将字符串分割,并放到临时表tmp_split 里面
 
Java代码  
DELIMITER $$    
DROP PROCEDURE IF EXISTS `splitString` $$    
CREATE PROCEDURE `splitString`    
(IN f_string varchar(1000),IN f_delimiter varchar(5))    
 
BEGIN      www.2cto.com  
    declare cnt int default 0;    
    declare i int default 0;    
    set cnt = func_split_TotalLength(f_string,f_delimiter);    
    DROP TABLE IF EXISTS `tmp_split`;    
    create temporary table `tmp_split` (`val_` varchar(128) not null) DEFAULT CHARSET=utf8;    
 
    while i
    do    
        set i = i + 1;    
        insert into tmp_split(`val_`) values (func_split(f_string,f_delimiter,i));    
    end while;    
END$$  
call splitString('a,s,d,f,g,h,j',',');  
SELECT * from tmp_split;

推荐阅读
author-avatar
广交天下友V笑
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有