`
greemranqq
  • 浏览: 975618 次
  • 性别: 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数据库中,`SPLIT`函数并不是内置的函数,但我们可以使用其他方式来实现类似的功能,即字符串分隔。通常,我们用`SUBSTRING_INDEX()`或`REGEXP_REPLACE()`结合`FIND_IN_SET()`来分割字符串。这些函数在处理...

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

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

    php+mysql常用函数

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

    PHP/MYSQL函数

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

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

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

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

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

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

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

    mysql存储过程实现split示例

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

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

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

    db2迁移到mysql.docx

    同样地,在DB2中使用`TO_DATE`函数转换字符串为日期时间,而在MySQL中则使用`STR_TO_DATE`函数。 ```sql -- DB2 SELECT F_GET_STR_TO_DATE(startDate DATETIME, split_format VARCHAR(25), dateType VARCHAR(3)) --...

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

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

    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上百个常用功能函数.zip

    8. **正则表达式函数**:`preg_match()`用于在字符串中匹配正则表达式,`preg_replace()`进行正则替换,`preg_split()`通过正则表达式分割字符串。 9. **会话管理**:`session_start()`启动会话,`$_SESSION`全局...

    Linux中将txt导入到mysql的方法教程

    在本例中,`insert()`函数使用`split()`方法拆分每一行数据,然后将拆分后的数据作为SQL插入语句的参数。 4. **异常处理**: 示例代码中没有涵盖错误处理部分,例如,如果TXT文件格式不正确,或者MySQL数据库连接...

    学习PHP收集的几个有用函数

    - 使用了已弃用的`mysql_*`函数,建议使用`mysqli_*`或`PDO`。 - 注意SQL注入风险。 ### 5. 目录删除:`del_DIR` 函数 此函数用于递归地删除指定目录及其所有子目录和文件。 **函数定义**: ```php function del_...

Global site tag (gtag.js) - Google Analytics