推荐 MySQL的FIND_IN_SET()函数

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://www.cnblogs.com/waban/p/5196267.html

转 : https://blog.csdn.net/myb0220/article/details/50459797

参考: MySQL的FIND_IN_SET()函数

转: https://www.cnblogs.com/mytzq/p/7090197.html

mysql字符串分割为数组_mysql下将分隔字符串转换为数组相关推荐

  1. mysql 字符转数组_mysql下将分隔字符串转换为数组

    MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用. 现有一段字符串,如apple,banana,orange,pears,grape,要把它按照逗 ...

  2. 【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  3. MySQL怎么存base64编码_MySQL中如何将字符串转为base64编码?

    在MySQL中,TO_BASE64()函数将字符串转换为以base-64编码的字符串并返回结果.(相关推荐:<MySQL教程>) 语法TO_BASE64(str) 其中str是需要编码的字 ...

  4. c语言mac地址字符串转换成数组,CString类型的MAC地址转换为数组类型

    在最近完成计算机网络课程设计的过程中,您需要将mac地址转换为六个字节. 我在互联网上找到了信息. 基本思想是将mac地址分为六个部分,每个部分为十六个. 基数将转换为十进制数,并分配给六字节数组的每 ...

  5. php把excel变成数组,PHP excel读取excel文件转换为数组

    /* 备注:先去下载PHP EXCEL--http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=phpexcel&a ...

  6. java 数组地图绘画_Java将地图转换为数组[Snippet]

    让我们编写一个将Map值转换为String数组的Java程序. 将映射值转换为数组示例 包 网.javaguides.corejava ; 导入 java.util.数组 ; 导入 java.util ...

  7. php将soap返回的xml转成数组,PHP – 在PHP中将XML转换为数组 – 在php中解析soap xml并将其存储在数据库中...

    我想转换soap xml响应并将其存储在数据库中.这是我的XML. 200 example2 ex2 example2@example2.com example2, example2 example2 ...

  8. php json decode 数组,php使用json_decode将json转换为数组

    php使用json_decode将json转换为数组2017-09-22 22:58 当我们学习php渐入佳境的时候,难免会遇到许多未曾想到过的问题. 比如说获取数据,获取下来是一些乱七八糟的字符. ...

  9. mysql 5.5 替换字符_MySQL replace函数替换字符串语句的用法

    MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪. 最近在研究CMS,在数据转换的时候需要用 ...

最新文章

  1. 人群密度估计--CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes
  2. 计算机硬件Word,[计算机硬件及网络]word的操作.doc
  3. 【Tensorflow-Error】CUDA_ERROR_OUT_OF_MEMORY: out of memory
  4. 【PAT - 甲级1095】Cars on Campus (30分)(模拟)
  5. 金陵科技学院计算机系男女比,眼已亮瞎:719所全国高校男女比例排名
  6. 你不知道的BAT大数据面试题
  7. C语言,两个超大整型数乘法
  8. python_str 字符串的所有方法
  9. pppoe服务器虚拟机,Hyper-V 批量建立虚拟机自动改IP并配置PPPOE拨号
  10. gimp 抠图_gimp抠图教程:gimp快速实现抠图效果
  11. 粤语翻译软件开发_粤语翻译器 带发音-粤语翻译器 带发音免费软件app安卓v2.3下载-SLY软件园...
  12. MSI Center局域网管理器开启导致电脑网络质量变差、网速低
  13. 82、组合分配式气体灭火系统所需的气体单向阀的数量
  14. 系统之家启动维护光盘v3.0[小盘·贺岁篇]
  15. python读取钉钉考勤数据
  16. 测试既是一门科学,也是一门艺术
  17. Word文档排版——自动编号
  18. Word修改默认英文字体为Times New Roman
  19. 基于MT7688模块的开发笔记12——给MT7688开发板添加WiFi功能
  20. 7、树莓派音频——jackd进阶篇

热门文章

  1. 国内的IT生意还真TMD难做,想生存发展大家还得多思考一下,出路在哪里?稍微迷茫了一点点...
  2. 微软Project Online落地中国
  3. 【JavaSE】Lambda表达式、接口组成更新、方法引用
  4. Mybatis批量插入数据到Oracel
  5. flutter基于provider状态管理设置主题颜色、实现简单登录、注册功能---页面+逻辑
  6. Java实体对象为null时set方法空指针异常
  7. 业务智能化成为电信运营业的总体发展趋势
  8. thinkphp + 腾讯云名片识别
  9. STM32怎样实现延时?
  10. Java入门基本数据类型(羊驼)