利用MySQL存储过程分割字符串
2019独角兽企业重金招聘Python工程师标准>>>
MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用。
现有一段字符串,如apple,banana,orange,pears,grape,要把它按照逗号(,)分割成:
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;
运行结果如下,说明分割成功:
select * from tmp_split;
Query OK, 1 row affected
+--------+
| status |
+--------+
| apple |
| banana |
| orange |
| pears |
| grape |
+--------+
5 rows in set
mysql>
3、应用where in()查询
转载于:https://my.oschina.net/AlexZhuang/blog/66909
利用MySQL存储过程分割字符串相关推荐
- mysql 存储过程 长字符串_mysql存储过程瓜分字符串
mysql存储过程分割字符串 DROP PROCEDURE IF EXISTS split_string; CREATE PROCEDURE split_string(IN to_split VARC ...
- mysql存储过程数组字符串_Mysql通过存储过程分割字符串为数组
分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str. SUBSTRING_INDEX(str,delim,count) 返回从字符串str的 ...
- mysql测试数据100w_利用MySQL存储过程批量插入100W条测试数据
这里将告诉您利用MySQL存储过程批量插入100W条测试数据,具体完成步骤:DROP PROCEDURE IF EXISTS insert_batch; CREATE PROCEDURE insert ...
- str split函数 php,怎么在php中利用str_split函数分割字符串
怎么在php中利用str_split函数分割字符串 发布时间:2021-01-04 14:52:31 来源:亿速云 阅读:54 作者:Leah 今天就跟大家聊聊有关怎么在php中利用str_split ...
- mysql通过函数分割字符串为数组中_Mysql通过存储过程分割字符串为数组
分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str. SUBSTRING_INDEX(str,delim,count) 返回从字符串str的 ...
- 利用MYSQL存储过程批量造数据
作为一名测试工程师,造这种存量数据,一般都是压测的时候需要一些存量数据.我平时用Jmeter比较多,比较少用到MYSQL的存储过程,最近浏览博客,看到有人用这个方式造数据,就趁机体验了一把. 一般的压 ...
- mysql函数 分割字符串_MySQL分割字符串的实现,mysql 字符串分割函数
mysql分割字符串应该如何实现呢?下面就为您介绍mysql分割字符串的实现方法步骤,希望可以让您对mysql分割字符串有更多的了解. 例如:update `edw_video` set compan ...
- java正则表达式分割字符串_Java开发笔记(三十七)利用正则串分割字符串
前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...
- java 正则切分句子_Java开发笔记(三十七)利用正则串分割字符串
前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...
最新文章
- IIS的虚拟目录和子应用程序
- cesium 设置时间_Cesium之地形制作与合并
- 【js细节剖析】通过=操作符为对象添加新属性时,结果会受到原型链上的同名属性影响...
- python的input()函数与getpass标准库
- C++面试笔记(2)
- Java虚拟机:性能监控与故障处理工具
- Linux下安装nginx, php, php-fpm并配置
- InfoPath Resource Sites
- webx学习(二)——Webx Framework
- ASP.NET Core Docker Nginx分权,多网站部署
- chrome 开发工具插件总结
- 亲测可用企业级自动发卡平台PHP系统源码
- 浅谈大数据思维——一名管科类学生基于《大数据时代》的思考
- 做头条问答项目,月入4000元到底有多简单
- Greedy Algorithm
- Spring 使用 ref 和 depends-on 属性的使用
- Socket编程与应用开发---- 数据采集的设计与实现(TCP)
- 量化投资的神秘世界,聪明人玩的游戏!
- 数字图像处理:什么是数字图像(一)
- sequoia负载均衡
热门文章
- java离线语音识别_你家的油烟机,可以语音控制了吗?
- php 5范例代码查询辞典 pdf,PHP 5范例代码查询辞典
- 解决Driver/library version mismatch
- Oracle/PLSQL CURSOR FOR Loop
- 【codevs2516】【BZOJ2461】符环,DP
- python随机生成k个不重复的随机数_使用Python生成不重复的随机值
- 【英语学习】【Daily English】U15 Culture L04 When in Rome, do as the Romans Do
- 【英语学习】【WOTD】litmus test 释义/词源/示例
- ef 在此上下文中只支持基本类型或枚举类型_Java枚举不应该成为你成功路上得绊脚石,源码给你讲解清楚
- python f.write 保存图片到路径_装逼篇 | 抖音超火的九宫格视频是如何生成的,Python 告诉你答案...