`
pingwei000
  • 浏览: 60915 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

MySQL中实现分割字符串的方法

阅读更多
比如现在有一字符串:1,2,44,5,666,29232
要把它按照逗号分割成:
1
2
44
5
666
29232
而且还要求它的总数。这个我以前写过。不过今天规范一下。

1、具体函数


SQL code

DELIMITER $$

CREATE DEFINER=`root`@`%` FUNCTION `func_get_split_string_total`(
f_string varchar(1000),f_delimiter varchar(5)
) RETURNS int(11)
BEGIN
-- Get the total number of given string.
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
END$$

DELIMITER ;





SQL code

DELIMITER $$


CREATE DEFINER=`root`@`%` FUNCTION `func_get_split_string`(
f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8
BEGIN
-- Get the separated number of given string.
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$$

DELIMITER ;
测试的存储过程:
DELIMITER $$

CREATE PROCEDURE `sp_print_result`(
IN f_string varchar(1000),IN f_delimiter varchar(5)
)
BEGIN
  -- Get the separated string.
  declare cnt int default 0;
  declare i int default 0;
  set cnt = func_get_split_string_total(f_string,f_delimiter);
  drop table if exists tmp_print;
  create temporary table tmp_print (num int not null);
  while i < cnt
  do
    set i = i + 1;
    insert into tmp_print(num) values (func_get_split_string(f_string,f_delimiter,i));
  end while;
  select * from tmp_print;
 
END$$

DELIMITER ;


2、来做一下测试
   mysql> call sp_print_result('1,2,44,5,666,29232',',');
+-------+
| num   |
+-------+
|     1 |
|     2 |
|    44 |
|     5 |
|   666 |
| 29232 |
+-------+
6 rows in set (0.01 sec)

Query OK, 0 rows affected (0.01 sec)
分享到:
评论

相关推荐

    mysql分割字符串

    在MySQL数据库中,有时我们需要处理存储在单一字段内的多个值,这时就涉及到字符串的分割操作。这个场景在处理如CSV格式的数据或者存储一串相关但独立的信息时尤为常见。本篇将详细介绍MySQL中的字符串分割技术及其...

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

    这个函数在分割字符串为数组时,用于倒序排列字符串以便于后续操作。 2. **SUBSTRING_INDEX() 函数**: - `SUBSTRING_INDEX(str, delim, count)` 也是一个重要的字符串函数,它根据分隔符`delim`将字符串`str`拆分...

    从字符串中查找字符出现次数的方法和性能对比

    第三种方法通过将目标字符作为分隔符,使用`String.Split`方法分割字符串,然后通过结果数组的长度减一得到目标字符的出现次数。实现代码如下: ```csharp int c3 = str.Split(new char[] {'A'}).Length - 1; ``` ...

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

    你可以使用这个函数来分割字符串,例如`SELECT * FROM dbo.f_split('dfkd,dfdkdf,dfdkf,dffjk', ',')`,这将返回一个包含所有分隔元素的表。 其次,如果你只需要知道一个字符串中有多少个分隔符,可以创建一个函数...

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    标题和描述所提及的问题是关于如何在Mapper.xml文件中处理字符串形式的参数,这些参数由逗号分隔,并在`AND`语句中拼接`OR`子句来实现动态查询。这种场景在处理用户多选过滤条件时非常常见,比如在一个搜索框中,...

    java中如何截取字符串.txt

    虽然本文主要关注Java中的字符串截取方法,但提供的文件中还提到了MySQL数据库中的字符串截取方法。这里也简单介绍一下MySQL中常用的字符串截取函数: - **LEFT(str, length)**:返回从字符串左侧开始的前`length`...

    MySQL截取和拆分字符串函数用法示例

    MySQL提供了丰富的字符串处理函数,如 `CONCAT` 用于连接字符串,`LENGTH` 或 `CHAR_LENGTH` 用于计算字符串长度,以及 `REPLACE` 用于替换字符串中的特定部分等。这些函数在实际开发中非常实用,了解并熟练掌握它们...

    MySQL 基础 - 字符串函数.md

    - **SUBSTRING函数**(也称为SUBSTR函数)用于从给定的字符串中提取一个子字符串。它允许我们指定从哪个位置开始提取以及提取多少个字符。 **语法结构**: ```sql SUBSTRING(str, pos, len) ``` - `str`是要处理的...

    PHP 笔记001 - 字符串、正则表达式

    - `mysql_real_escape_string` 和 `mysql_escape_string`:这两个函数用于转义SQL字符串中的特殊字符。`mysql_real_escape_string`还会判断字符集,而`mysql_escape_string`不会。 - `base64_encode` 和 `base64_...

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

    这可能涉及字符串分割、正则表达式匹配或者JSON/XML解析等,具体取决于数据格式。例如,如果数据是以逗号分隔值(CSV)格式,可以使用`String.split()`方法来拆分。 4. **MySQL数据库操作** 在Java中,我们可以使用...

    数值运算字符串转换成数字.zip

    正则表达式是一种强大的文本匹配工具,可以用来分割、替换或匹配字符串中的特定模式。不过,大多数SQL方言并不支持复杂的正则表达式操作,所以你可能需要借助服务器端的其他编程语言,如Python或Java,来辅助处理。 ...

    高效的忽略大小写的字符串替换(Replace)函数[定义].pdf

    在.NET中,有多种方法可以实现字符串替换,但其中只有少数几种方法支持忽略大小写。下面我们将详细介绍这些方法,并对其进行比较和分析。 1. String.Replace()方法 String.Replace()方法是最常用的字符串替换方法...

    MYSQL金额转大写.7z

    在MySQL中,可以使用内置的`SUBSTRING_INDEX()`函数来分割字符串。这个函数根据指定的分隔符返回一个字符串的一部分,可以是起始部分或结束部分。例如,如果你有一个包含逗号分隔的数字串,你可以使用它来获取每个...

    mysql函数split功能实现

    通常,我们用`SUBSTRING_INDEX()`或`REGEXP_REPLACE()`结合`FIND_IN_SET()`来分割字符串。这些函数在处理字符串数据时非常有用,特别是在需要将一个长字符串拆分为多个部分时。 首先,`SUBSTRING_INDEX()`函数是...

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

    如果数组长度等于1,说明目标字符串并不在主字符串中,因为整个目标字符串被当作一个整体来分割,没有产生额外的数组元素。 以下是checkStr()函数的代码实现: ```php function checkStr($str, $target) { $tmpArr...

    java算法,从txt文件中读取数据录入mysql

    在处理TXT文件内容时,可能会涉及到`String`类的方法,如`split()`用于分割字符串,`trim()`去除空白,`replace()`替换特定字符等。此外,如果数据格式复杂,还可能使用正则表达式(`Pattern`和`Matcher`类)进行...

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

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

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

    4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 4.5.2 查找子字符串的位置:strpos()、strrpos() 4.5.3 替换子字符串:str_replace()、substr_replace() 4.6 正则表达式的介绍 4.6.1 ...

Global site tag (gtag.js) - Google Analytics