在Java中我们可以通过String对象的split方法将字符串按指定字符分割为字符串数组,但是MySQL中没有为我们提供字符串分割功能,今天在工作中遇到了这种需求,找到了解决办法,分享给大家

场景: 有组织表(带树形结构的那种)其中有一个字段为tree-path记录了当前部门的所有父级部门的id例如 1-10-13表示该组织的父级组织是13,13的父级组织是10,10的父级组织是1,我查询当前用户的组织结构。如交通运输厅本机-财务部-财务负责人因此需要对tree-path进行分割后通过 in 查询。

解决方案一

1 创建存储过程

CREATE FUNCTION split(

x VARCHAR(255),

delim VARCHAR(12),

pos INT

)

RETURNS VARCHAR(255)

RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),

LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),

delim, '');

函数解析:传入三个参数第一个为要分割的字符,第二个为以什么分割,第三个参数为分割后区第几位

2 调用该过程进行查询

select split('1,2,3,4,5',',',help_topic_id)

from mysql.help_topic

where help_topic_id between 1 and length('1,2,3,4,5') -length(replace('1,2,3,4,5',',',''));

解析:这里利用了mysql自带的一个表 mysql.help_topic 他的help_topic_id是从0到643连续的,然后我们只需要控制 help_topic_id为字符串分割后的数量即可

解决方案二

SELECT

SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',help_topic_id+1),',',-1) AS num

FROM

mysql.help_topic

WHERE

help_topic_id < LENGTH('7654,7698,7782,7788')-LENGTH(REPLACE('7654,7698,7782,7788',',',''))+1

参考:https://www.cnblogs.com/gered/p/10797012.html

mysql 字符串拆分成表_Mysql实现字符串分割功能,将字符串分割为多行数据相关推荐

  1. mysql数据库创建员工表_mysql数据库简单练习(创建表格,增删改查数据)

    1.创建一个员工表 字段     属性 id        整形(int) name     字符串(varchar)(长度为20) gender    字符串(长度为2) birthday  日期型 ...

  2. python把一个字符串拆分成多个字段_如何把一个字符串分割成多个字符串

    展开全部 下面两种方法均可以把一个62616964757a686964616fe58685e5aeb931333363393661字符串分割成多个字符串 一.Java 知识补充String的split ...

  3. UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理(c++实现)...

    一.字符编码简单介绍 1. ASCII码 在计算机内部,全部的信息终于都表示为一个二进制的字符串.每个二进制位(bit)有0和1两种状态,因此八个二进制位就能够组合出256种状态,这被称为一个字节(b ...

  4. Java 将字符串拆分成数组,实现字符串组合

    将字符串拆分成数组和实现字符串组合 不能使用语言的基本分割组合函数(如 Java 的 String.split, php 的 explode 和 implode) 1) 字符串拆分成字符串数组,如&q ...

  5. 把一个字符串分割成数组 php_PHP怎么将字符串拆分成数组

    在日常项目开发过程中,较长的字符串可能需要被拆分成数组形式,以便被展现或用于判断验证.那么将字符串拆分成数组,也很容易实现,我们可以直接通过PHP中的explode函数来进行拆分. 下面我们就通过简单 ...

  6. new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解

    new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...

  7. 每天一道LeetCode-----将字符串拆分成有效的ip地址

    Restore IP Addresses 原题链接Restore IP Addresses 给定一个仅包含数字的字符串,将其拆分成有效的ip地址 题目的主要意思实际是在字符串中添加三个点,从而构成一个 ...

  8. mysql信息函数和加密函数_MYSQL 常用函数(数学、字符串、日期时间、系统信息、加密)...

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...

  9. python将字符串拆分成单词_将字符串拆分为单词和标点符号

    我正在尝试将字符串拆分为单词和标点符号,并将标点符号添加到拆分生成的列表中. 例如: >>> c = "help, me" >>> print ...

最新文章

  1. mapreduce value 排序_MapReduce知识点一
  2. java element 属性_属性'value'在'HTMLElement'类型的值上不存在
  3. 转载:SendMessage()这个函数有很多奇妙的用途
  4. 光纤到桌面FTTD解决方案
  5. gawk Notes(2)
  6. 20155213免考项目——简易的HIDAttack
  7. 互动教程 for Excel 2016
  8. tsplay 打流,EasyICE测试
  9. Altium Designer 学习笔记
  10. 3D-06-打飞碟(物理运动)
  11. 基于 element ui 之 ui-tooltip 组件
  12. 英语中与数字有关的表达方式
  13. 怎么修改html上的文字大小,网页字体大小怎么改_电脑网页字体怎么调整-win7之家...
  14. 小程序生成自带参数的小程序码
  15. 2021-07-02软件构造学习中遇到的问题
  16. C语言|博客作业07
  17. clickhouse 物化视图使用详解
  18. 名企笔试:网易游戏2017招聘笔试题(赶去公司)
  19. HyperLPR车牌识别库代码分析总结(15)
  20. 老版本微信平台服务器部署步骤(没那么坑版)

热门文章

  1. JVM调优的基本配置参数
  2. Calendar类介绍
  3. Callable接口及Futrue接口详解
  4. OpenERP新手易犯错误之res.model
  5. java jbutton 大小_java-jButton在运行时调整大小
  6. Ubuntu下官方QQ崩溃的解决
  7. Excel Int函数取整
  8. Python必学知识:变量的声明
  9. 读写分离时mycat不能链接mysql_Mycat读写分离配置实践
  10. 英特尔推出上网本应用商店