热门标签 | 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;

推荐阅读
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文将详细介绍通过CAS(Central Authentication Service)实现单点登录的原理和步骤。CAS由耶鲁大学开发,旨在为多应用系统提供统一的身份认证服务。文中不仅涵盖了CAS的基本架构,还提供了具体的配置实例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本更新解释了为何在代码中不推荐使用从整数到浮点数的转换,并提出了更优的替代方案。 ... [详细]
  • 本文介绍了如何在Java中使用org.apache.commons.math3.linear.ArrayRealVector.getEntry()方法,并提供了多个实际应用中的代码示例。 ... [详细]
  • 本文将详细介绍小蚁智能行车记录仪的各项性能,包括其1296P高清分辨率的实际表现及ADAS辅助驾驶系统的功能测试。通过白天、夜晚及低光环境下的视频测试,全面评估这款设备的实用性。 ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • 在使用 iOS 应用时,遇到网络请求错误是常见的问题。本文将探讨两种常见的错误代码 -1003 和 -1001,并提供详细的解释和解决方案。 ... [详细]
  • 对 manual_async_fn 进行了改进,确保其能够正确处理和捕获输入的生命周期。 ... [详细]
  • UE4 中 Decal 贴花在静态光照下的渲染问题及解决方案
    本文探讨了 UE4 中 Decal 贴花在静态光照条件下无法正确渲染的问题,分析了其原因,并提供了针对不同平台(PC 和移动设备)的有效解决策略。特别关注了半透明材质贴花的特殊处理方法。 ... [详细]
  • Helium网络将在5月3日实施轻网关(Light Hotspots)的技术升级,以提高网络效率和性能。 ... [详细]
  • 本文介绍了如何在 Ubuntu 18.10 Cosmic 停止官方支持后,通过更换软件源来解决 `apt update` 失败的问题。 ... [详细]
  • 部署新的ASP.NET Web应用程序构建(主要涉及DLL文件更改)后,服务器上的CPU使用率每几秒就会飙升至100%,问题似乎源自lsass.exe进程。这一现象与应用程序部署之间是否存在直接关联? ... [详细]
  • 本文详细介绍了 SVN 中的 switch 命令及其使用方法,包括如何切换工作副本到新的 URL 和如何处理版本库迁移等情况。 ... [详细]
  • 在Ubuntu 14.04 (Desktop AMD64) 上安装与配置ROS Indigo
    本文档详细介绍了如何在Ubuntu 14.04 (Desktop AMD64) 系统上安装和配置ROS Indigo。包括设置软件源、安装ROS核心组件、初始化rosdep以及创建ROS工作空间等步骤。 ... [详细]
  • Java基础概念与核心特性解析
    本文深入探讨了Java编程语言的基本特点,包括其简洁性、面向对象设计、跨平台能力以及多线程支持等关键特性。此外,文章还详细分析了JVM、JDK和JRE之间的区别,并讨论了字节码的概念及其优势。 ... [详细]
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社区 版权所有