`

MYSQL Explode 字符串切割

阅读更多
MYSQL Explode 字符串切割

在老外的站点上看到非常不错的 Explode 存储过程实现。为了能方便处理 SELECT 出来的结果集字段(select lib_Explode(‘,’,string) from xxx; ),我改了一个 FUNCTION ,基本上是一样的。但需要将里面建表的语句单独拿出来。

EXPLODE 方法:

DROP TABLE IF EXISTS lib_Explode;
CREATE TABLE lib_Explode(
    `pos` int unsigned NOT NULL auto_increment,
    `val` VARCHAR(255) NOT NULL,
PRIMARY KEY  (`pos`)
) ENGINE=Memory COMMENT='Explode() results.';


CREATE FUNCTION lib_Explode( sSepar VARCHAR(255), saVal TEXT ) returns INTEGER
body:
BEGIN
    IF sSepar IS NULL OR saVal IS NULL THEN LEAVE body; END IF;

    SET @saTail = saVal;
    SET @iSeparLen = LENGTH( sSepar );
    SET @total = 0;
   
    create_layers:
    WHILE @saTail != '' DO
   
        # Get the next value
        SET @sHead = SUBSTRING_INDEX(@saTail, sSepar, 1);
        SET @saTail = SUBSTRING( @saTail, LENGTH(@sHead) + 1 + @iSeparLen );
        INSERT INTO lib_Explode SET val = @sHead;
   
    END WHILE;
   
    SELECT count(*) INTO @total from lib_Explode;
    return @total;

END; //
EXPLODE 存储过程:

CREATE PROCEDURE lib_Explode( sSepar VARCHAR(255), saVal TEXT )
body:
BEGIN

    DROP TEMPORARY TABLE IF EXISTS lib_Explode;
    CREATE TEMPORARY TABLE lib_Explode(
        `pos` int unsigned NOT NULL auto_increment,
        `val` VARCHAR(255) NOT NULL,
    PRIMARY KEY  (`pos`)
    ) ENGINE=Memory COMMENT='Explode() results.';
   
    IF sSepar IS NULL OR saVal IS NULL THEN LEAVE body; END IF;

    SET @saTail = saVal;
    SET @iSeparLen = LENGTH( sSepar );
   
    create_layers:
    WHILE @saTail != '' DO
   
        # Get the next value
        SET @sHead = SUBSTRING_INDEX(@saTail, sSepar, 1);
        SET @saTail = SUBSTRING( @saTail, LENGTH(@sHead) + 1 + @iSeparLen );
        INSERT INTO lib_Explode SET val = @sHead;
   
    END WHILE;

END; //
相关文章:
分享到:
评论

相关推荐

    php将字符串转换为数组实例讲解

    `explode()`函数是一个非常实用的内置函数,它能够根据指定的分隔符将一个字符串分割成多个子字符串,从而形成一个数组。下面我们将详细讨论`explode()`函数的用法、参数以及实例。 ### `explode()`函数详解 `...

    PHP简单判断字符串是否包含另一个字符串的方法

    如果explode()函数分割后得到的数组长度大于1,意味着主字符串中确实包含了目标字符串;如果数组长度等于1,说明目标字符串并不在主字符串中,因为整个目标字符串被当作一个整体来分割,没有产生额外的数组元素。 ...

    php strstr查找字符串中是否包含某些字符的查找函数

    此外,还可以使用 `explode()` 分割字符串,`preg_match()` 使用正则表达式匹配,以及简单的逻辑判断等方法来实现相同功能。 在实际编程中,根据具体情况选择合适的函数是非常重要的,例如,如果字符串包含特殊字符...

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

    `implode`用于将数组元素组合为一个字符串,`explode`是用指定字符分割字符串成数组,`join`与`implode`功能相同。 2. `strrev`函数用于实现字符串的翻转,将字符串的字符顺序反转。 3. PHP的模板框架中,`Smarty`,...

    php字符串操作常见问题小结

    explode()函数接受两个参数:第一个参数是分隔符,第二个参数是要分割的字符串。它会返回一个数组,数组的每个元素是原字符串按分隔符拆分后的结果。例如,"Hello world"使用空格作为分隔符拆分后,可以得到数组[...

    PHP和MySQL Web开发第4版pdf以及源码

    4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() ...

    PHP CookBook 3rd Edition

    2. 提取子字符串:可能涉及到使用`explode()`函数根据某个分隔符分割字符串,或者使用`preg_split()`函数根据正则表达式来提取。 3. 替换子字符串:这部分讨论如何使用`str_replace()`、`preg_replace()`等函数来...

    PHP和MySQL WEB开发(第4版)

    4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() 4.4.2...

    php基础知识,php 添 删 查 改 导出 带mysql数据库 s2.zip

    PHP提供了丰富的字符串处理函数,如str_replace替换子串,strpos查找子串位置,trim去除字符串边缘空格,explode分割字符串等。 5. **数组操作** PHP中的数组可以是索引数组或关联数组。常用的数组函数有array_...

    PHP+MySQL网络开发从入门到精通源码

    - **字符串与数组处理**:PHP提供了丰富的字符串和数组操作函数,如 `strlen()` 计算字符串长度,`explode()` 分割字符串,`array_push()` 向数组添加元素。 2. **MySQL基础** - **数据库管理**:通过 `mysqli` ...

    PHP和MySQL Web开发第4版

    4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() ...

    Php常用函数

    - **`explode`**:使用分隔符将字符串分割成数组。 - **`htmlspecialchars`**:将预定义的字符转换为HTML实体。 - **`implode`**:使用粘合字符串将数组元素组合成一个字符串。 - **`join`**:使用粘合字符串将数组...

    php+mysql学习

    4. 函数:PHP内置大量内置函数,例如`strlen()`计算字符串长度,`explode()`分割字符串,`date()`处理日期时间等。 二、MySQL基础 1. 数据库管理:使用SQL(Structured Query Language)操作数据库,包括创建、修改...

    php课堂讲义.zip

    《第7讲字符串处理.ppt》会讲解PHP处理字符串的各种函数,如strlen()用于获取字符串长度,strpos()用于查找子字符串位置,str_replace()用于替换字符串,以及explode()和implode()等用于字符串分割和合并的函数。...

    php函数及正则表达式

    10. **`explode()`**:将字符串分割成数组,基于分隔符进行切割。 11. **`implode()`**:将数组元素组合成字符串,基于粘合符进行连接。 12. **`sprintf`**:类似于`printf`,但结果存储在变量中,不直接输出。 ...

    实现PHP导入MYSQL数据文件

    可以使用`file_get_contents`函数将整个文件读入一个字符串: ```php $sql_file = 'path_to_your.sql'; // SQL文件路径 $sql_data = file_get_contents($sql_file); ``` 然后,我们需要将SQL语句分割成多个部分,...

    PHP(50选择题).doc

    该代码使用 explode() 函数将字符串分割成数组,然后使用 implode() 函数将数组连接成字符串。 _PHP 会话机制_ 6. session 和 cookie 的区别说法错误的是?答案:C、在使用 cookie 前要使用 cookie_start() 函数...

    PHP中一些有意思的小知识

    PHP提供了丰富的字符串操作函数,如`strlen()`计算长度,`strpos()`查找子串位置,`str_replace()`替换子串,`explode()`分割字符串等,这些函数极大地增强了处理字符串的能力。 9. **数组操作** PHP的数组功能...

    mysql语句格式化工具(php)

    开发者可能利用PHP的字符串处理函数,如`strpos`、`substr`、`explode`等,来分析和处理SQL语句。同时,PHP的正则表达式功能也可能被用到,以便更精确地匹配和分割SQL中的不同元素。 使用这样的工具时,用户通常只...

Global site tag (gtag.js) - Google Analytics