`
greemranqq
  • 浏览: 965848 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

mysql 函数split

阅读更多

mysql 5.* 的版本现在没有split 函数,但有些地方会用,在这里就简单记录一下:

先设置:SET GLOBAL log_bin_trust_function_creators = 1

 

1. 函数func_splitStringTotal:将字符串按指定方式分割,并计算单元总数

 

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:将字符串按指定方式分割,获取指定位置的数

 

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 里面

 

DELIMITER $$  
DROP PROCEDURE IF EXISTS `splitString` $$  
CREATE PROCEDURE `splitString`  
(IN f_string varchar(1000),IN f_delimiter varchar(5))  
BEGIN  
    declare cnt int default 0;  
    declare i int default 0;  
    set cnt = func_get_splitStringTotal(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 < cnt  
    do  
        set i = i + 1;  
        insert into tmp_split(`val_`) values (func_splitString(f_string,f_delimiter,i));  
    end while;  
END$$
call splitString('a,s,d,f,g,h,j',',');
SELECT * from tmp_split;
分享到:
评论

相关推荐

    mysql函数split功能实现

    mysql 5.* 的版本现在没有split 函数,但有些地方会用,在这里就简单记录一下

    MySql函数-取一个字符串分隔后指定位置的子字符串

    一、函数功能:对字符串进行分隔数组,取指定顺序位置的子字符串,支持左右双向获取,支持...二、函数格式:fn_get_split_val(in_str varchar,in_delimiter varchar,in_order int,in_default varchar) 三、测试用例

    MySQL里实现类似SPLIT的分割字符串的函数

    下边的函数,实现了象数组一样去处理字符串。 一,用临时表作为数组 代码如下: create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@...

    mysql split函数用逗号分隔的实现

    1:定义存储过程,用于分隔字符串 DELIMITER $$ USE `mess`$$ DROP PROCEDURE IF EXISTS `splitString`$$ CREATE DEFINER=`root`@`%` PROCEDURE `splitString`(IN f_string VARCHAR(1000),IN f_delimiter VARCHAR(5...

    给Oracle添加split和splitstr函数的方法

    最近项目中有很多需要做批量操作的需求,客户端把一组逗号分隔的ID字符串传给数据库,存储过程就需要把它们分割,然后逐个处理。 以往的处理方式有如下几种: 1、在存储过程内写循环,逐个分析字符串中的ID,然后...

    mysql存储过程实现split示例

    代码如下:call PROCEDURE_split(‘分享,代码,片段’,’,’);select * from splittable; 代码如下:drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`( inputstring varchar(1000), ...

    Mysql通过存储过程分割字符串为数组

    分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str。 SUBSTRING_INDEX(str,delim,count) 返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回...

    Python3 菜鸟查询手册

    08.31 字符串内建函数 split()方法.png 08.32 字符串内建函数 splitlines()方法.png 08.33 字符串内建函数 startswith()方法.png 08.34 字符串内建函数 strip()方法.png 08.35 字符串内建函数 swapcase()方法....

    Mysql字符串截取及获取指定字符串中的数据

    前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个合适的方法:substring_index(‘www.sqlstudy.com.cn’, ‘.’, -2) ...

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    OraLoad类的int ProcLoad(Connection in_conn, String args[])函数就可以实现类似功能了。例如 new OraLoad.ProcLoad( null, "-u test -p testpwd -i 127.0.0.1 -s ora10 -f test.txt -t tmp_test -c , -e gbk"); ...

    php5.3 废弃函数小结

    在php5.3被放弃的函数有: ereg();//直接用mb_ereg代替,或是preg_match代替,但是匹配规则... split(); mysql_close(); // 将不支持全部关闭, 需要改为:mysql_close($link); 您可能感兴趣的文章:Ubuntu12下编译安装

    用PHP读取文件的正确方法

    诸如 fread 之类的典型函数可能在大多数时候都是最佳的选择,或者当 readfile 刚好能满足任务需要时,您可能会发现自己更为 readfile 的简单所吸引。它实际上取决于所要完成的操作。如果要处理大量数据,fscanf将能...

    PHP3程序设计

    9.3.8 preg_split函数 143 9.3.9 模式举例 143 9.3.10 匹配举例 144 9.3.11 替换举例 148 9.3.12 分割举例 150 9.4 MySQL …151 9.4.1 LIKE 151 9.4.2 RLIKE 152 9.5 总结 152 第10章 面向对象 154 10.1 了解类的...

    php网络开发完全手册

    4.2.1 获得日期时间信息的函数getdate 60 4.2.2 获得当前时间的函数 4.2.2 gettimeofday 61 4.2.3 日期验证函数checkdate 61 4.2.4 格式化本地时间日期的函数date 62 4.2.5 获得本地化时间戳的函数mktime 64 4.2.6 ...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样...

    2017最新大数据架构师精英课程

    41_java mysql 函数 42_java mysql LongBlob + Text类型8 @9 ^) y7 s* L, _3 w7 Q9 q9 ^ 43_连接查询2 R: d" J9 J1 O3 D* B1 }2 u( {2 v 44_事务并发现象-脏读-幻读-不可重复读-隔离级别 45_隔离级别-并发现象展示-...

    03开源NewSql数据库TiDB-Deep Dive into TiDB

    修复部分函数/表达式返回类型和 MySQL 不同的问题 提升对 JDBC 兼容性 支持更多的 `SQL_MODE` 5.DDL 优化 `Add Index` 的执行速度,部分场景下速度大幅度提升 `Add Index` 操作变更为低优先级,降低对线上业务...

    API精灵源码(C#编)

    private string mysql ;//查询语句 private string sql_update; private System.Windows.Forms.RichTextBox tipsmemo; private System.Windows.Forms.TextBox mat_text; private OleDbCommand mycommand =...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    技术点82 定位input split 问题 13.2.3 调试JVM 配置 技术点83 解决任务的JVM 启动参数 13.2.4 高效调试的编码准则 技术点84 调试和错误处理 13.3 MapReduce 陷阱 技术点85 MapReduce 反模式 13.4 本...

Global site tag (gtag.js) - Google Analytics