2019独角兽企业重金招聘Python工程师标准>>>

MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用。

现有一段字符串,如apple,banana,orange,pears,grape,要把它按照逗号(,)分割成:

apple
banana
orange
pears
grape

然后使用where in()方法可以查询。

1、具体函数:

# 函数:func_split_TotalLength 

DELIMITER $$

DROP function IF EXISTS `func_split_TotalLength` $$

CREATE DEFINER=`root`@`%` FUNCTION `func_split_TotalLength`

(f_string varchar(1000),f_delimiter varchar(5)) RETURNS int(11)

BEGIN

# 计算传入字符串的总length

return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));

END$$

DELIMITER;

# 函数:func_split 

DELIMITER $$

DROP function IF EXISTS `func_split` $$

CREATE DEFINER=`root`@`%` FUNCTION `func_split`

(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$$

DELIMITER;

# 存储过程:splitString 

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` (`status` varchar(128) not null) DEFAULT CHARSET=utf8;

while i < cnt

do

set i = i + 1;

insert into tmp_split(`status`) values (func_split(f_string,f_delimiter,i));

end while;

END$$

DELIMITER;

2、测试是否能成功分割

call splitString("apple,banana,orange,pears,grape",",");

select * from tmp_split;

运行结果如下,说明分割成功:

mysql> call splitString("apple,banana,orange,pears,grape",",");
select * from tmp_split;
Query OK, 1 row affected

+--------+
| status |
+--------+
| apple  |
| banana |
| orange |
| pears  |
| grape  |
+--------+
5 rows in set

mysql>

3、应用where in()查询

# 先传入字符串,分割后保存在临时表tmp_split中 
call splitString("apple,banana,orange,pears,grape",","); 
# 将查询的结果作为其他查询的条件来使用 
select * from fruit where in(select * from tmp_split); 
以上就是利用MySQL存储过程分割字符串的方法介绍。

转载于:https://my.oschina.net/AlexZhuang/blog/66909

利用MySQL存储过程分割字符串相关推荐

  1. mysql 存储过程 长字符串_mysql存储过程瓜分字符串

    mysql存储过程分割字符串 DROP PROCEDURE IF EXISTS split_string; CREATE PROCEDURE split_string(IN to_split VARC ...

  2. mysql存储过程数组字符串_Mysql通过存储过程分割字符串为数组

    分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str. SUBSTRING_INDEX(str,delim,count) 返回从字符串str的 ...

  3. mysql测试数据100w_利用MySQL存储过程批量插入100W条测试数据

    这里将告诉您利用MySQL存储过程批量插入100W条测试数据,具体完成步骤:DROP PROCEDURE IF EXISTS insert_batch; CREATE PROCEDURE insert ...

  4. str split函数 php,怎么在php中利用str_split函数分割字符串

    怎么在php中利用str_split函数分割字符串 发布时间:2021-01-04 14:52:31 来源:亿速云 阅读:54 作者:Leah 今天就跟大家聊聊有关怎么在php中利用str_split ...

  5. mysql通过函数分割字符串为数组中_Mysql通过存储过程分割字符串为数组

    分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str. SUBSTRING_INDEX(str,delim,count) 返回从字符串str的 ...

  6. 利用MYSQL存储过程批量造数据

    作为一名测试工程师,造这种存量数据,一般都是压测的时候需要一些存量数据.我平时用Jmeter比较多,比较少用到MYSQL的存储过程,最近浏览博客,看到有人用这个方式造数据,就趁机体验了一把. 一般的压 ...

  7. mysql函数 分割字符串_MySQL分割字符串的实现,mysql 字符串分割函数

    mysql分割字符串应该如何实现呢?下面就为您介绍mysql分割字符串的实现方法步骤,希望可以让您对mysql分割字符串有更多的了解. 例如:update `edw_video` set compan ...

  8. java正则表达式分割字符串_Java开发笔记(三十七)利用正则串分割字符串

    前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...

  9. java 正则切分句子_Java开发笔记(三十七)利用正则串分割字符串

    前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...

最新文章

  1. IIS的虚拟目录和子应用程序
  2. cesium 设置时间_Cesium之地形制作与合并
  3. 【js细节剖析】通过=操作符为对象添加新属性时,结果会受到原型链上的同名属性影响...
  4. python的input()函数与getpass标准库
  5. C++面试笔记(2)
  6. Java虚拟机:性能监控与故障处理工具
  7. Linux下安装nginx, php, php-fpm并配置
  8. InfoPath Resource Sites
  9. webx学习(二)——Webx Framework
  10. ASP.NET Core Docker Nginx分权,多网站部署
  11. chrome 开发工具插件总结
  12. 亲测可用企业级自动发卡平台PHP系统源码
  13. 浅谈大数据思维——一名管科类学生基于《大数据时代》的思考
  14. 做头条问答项目,月入4000元到底有多简单
  15. Greedy Algorithm
  16. Spring 使用 ref 和 depends-on 属性的使用
  17. Socket编程与应用开发---- 数据采集的设计与实现(TCP)
  18. 量化投资的神秘世界,聪明人玩的游戏!
  19. 数字图像处理:什么是数字图像(一)
  20. sequoia负载均衡

热门文章

  1. java离线语音识别_你家的油烟机,可以语音控制了吗?
  2. php 5范例代码查询辞典 pdf,PHP 5范例代码查询辞典
  3. 解决Driver/library version mismatch
  4. Oracle/PLSQL CURSOR FOR Loop
  5. 【codevs2516】【BZOJ2461】符环,DP
  6. python随机生成k个不重复的随机数_使用Python生成不重复的随机值
  7. 【英语学习】【Daily English】U15 Culture L04 When in Rome, do as the Romans Do
  8. 【英语学习】【WOTD】litmus test 释义/词源/示例
  9. ef 在此上下文中只支持基本类型或枚举类型_Java枚举不应该成为你成功路上得绊脚石,源码给你讲解清楚
  10. python f.write 保存图片到路径_装逼篇 | 抖音超火的九宫格视频是如何生成的,Python 告诉你答案...