`

mysql函数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_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 < cnt 
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; 

 

 

 

分享到:
评论

相关推荐

    mysql函数split功能实现

    在MySQL数据库中,`SPLIT`函数并不是内置的函数,但我们可以使用其他方式来实现类似的功能,即字符串分隔。通常,我们用`SUBSTRING_INDEX()`或`REGEXP_REPLACE()`结合`FIND_IN_SET()`来分割字符串。这些函数在处理...

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

    在SQL中,处理字符串时确实不如其他编程语言那样灵活,...以上就是在MySQL中实现类似SPLIT功能的方法,虽然不如某些编程语言直接支持数组那样方便,但通过自定义函数和巧妙的逻辑,我们仍然可以有效地处理分隔字符串。

    php+mysql常用函数

    `split()`函数则用于根据指定的分隔符将字符串分割成数组。这对于处理CSV数据或者需要拆分字符串的情况非常有用。你还可以通过`limit`参数限制分割出的数组元素数量。 最后,`sql_regcase()`函数是一个不太常见的...

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

    虽然MySQL的标准库中没有直接提供`split`函数,但可以通过自定义存储过程和函数来实现类似的功能。这里我们将详细讲解如何在MySQL中实现一个用逗号分隔的`split`函数。 首先,我们创建一个存储过程`splitString`,...

    PHP/MYSQL函数

    ### PHP/MYSQL函数详解 #### 引言 在IT领域,尤其是Web开发中,PHP与MySQL的结合被视为网站后台开发的黄金搭档。PHP作为一种广泛使用的开源脚本语言,以其易于学习、灵活高效的特点,成为服务器端脚本语言的首选。...

    mysql常用函数列表 (2).pdf

    此外,MySQL 还支持正则表达式函数,如 `ereg`、`ereg_replace`、`eregi`、`eregi_replace`、`split` 和 `sql_regcase`,它们在处理字符串时提供了强大的匹配和替换功能,可以极大地提升数据库查询的灵活性和效率。...

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

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

    mysql存储过程实现split示例

    在本示例中,我们将深入探讨如何在MySQL中创建一个存储过程,用于将字符串按照指定的分隔符进行拆分,即实现类似JavaScript中的`split()`函数的功能。 首先,我们来看一下提供的存储过程代码: ```sql drop ...

    PHP上百个常用功能函数.zip

    在PHP编程语言中,函数是实现特定任务的代码块,可以重复使用,极大地提高了开发效率。"PHP上百个常用功能函数.zip"这个压缩包显然包含了众多实用的PHP函数和方法,旨在帮助开发者在日常工作和学习中提升效率。下面...

    db2迁移到mysql.docx

    在MySQL中,可以通过递归查询或者使用自定义函数来实现类似的功能。 ##### 5.1. 根据传入ID查询所有父节点的ID ```sql SELECT * FROM treenodes WHERE FIND_IN_SET(id, F_GET_TREE_PARENT_LIST('treenodes', '15'));...

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

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

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

    通过这些MySQL函数和存储过程的组合,我们可以有效地将一个字符串分割成数组,这对于处理分隔的字符串数据非常有用。在实际应用中,这样的操作可能出现在数据分析、日志解析或数据导入等场景。理解并熟练运用这些...

    MySQL数据库进行中文全文检索的模拟实现方法.pdf

    MySQL是最流行的开放源码关系型数据库管理系统,它具有多方面的优点,如能工作在众多不同平台上,SQL函数使用高度优化的类库实现,运行速度快等。然而,MySQL对中文字符集的支持较差,在设置数据库字符集为“gb2312...

    PBI--M语言函数.pdf

    * 数据库函数:Power Query M 语言的数据库函数用于访问数据库,如DB2.Database、MySQL.Database 等。 * 文件函数:Power Query M 语言的文件函数用于访问文件,如Csv.Document、Json.Document 等。 Power Query M ...

    PHP mysql基础知识技术考题分享,用于面试,考题用

    1. PHP中的字符串分割函数,`split`函数使用正则表达式将字符串分割成数组,但此函数已废弃,推荐使用`preg_split`。`implode`用于将数组元素组合为一个字符串,`explode`是用指定字符分割字符串成数组,`join`与`...

    PHP自定义函数实现数组比较功能示例

    为了满足这一需求,可以编写自定义函数来实现数组比较的功能。本文提供的示例就是用PHP语言编写的自定义函数,用于比较两个数组的内容。 首先,函数 `standard_array_compare` 接受两个参数 `$op1` 和 `$op2`,它们...

    JAVA串口助手接收数据并解析数据存入MySQL数据库中

    在本文中,我们将深入探讨如何使用Java开发一个串口助手应用程序,该程序能接收来自串行端口的数据并将其解析后存储到MySQL数据库中。首先,我们需要了解串口通信的基本概念,然后学习Java如何处理串口输入,接着是...

Global site tag (gtag.js) - Google Analytics