mysql 字符串拆分成表_Mysql实现字符串分割功能,将字符串分割为多行数据
在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实现字符串分割功能,将字符串分割为多行数据相关推荐
- mysql数据库创建员工表_mysql数据库简单练习(创建表格,增删改查数据)
1.创建一个员工表 字段 属性 id 整形(int) name 字符串(varchar)(长度为20) gender 字符串(长度为2) birthday 日期型 ...
- python把一个字符串拆分成多个字段_如何把一个字符串分割成多个字符串
展开全部 下面两种方法均可以把一个62616964757a686964616fe58685e5aeb931333363393661字符串分割成多个字符串 一.Java 知识补充String的split ...
- UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理(c++实现)...
一.字符编码简单介绍 1. ASCII码 在计算机内部,全部的信息终于都表示为一个二进制的字符串.每个二进制位(bit)有0和1两种状态,因此八个二进制位就能够组合出256种状态,这被称为一个字节(b ...
- Java 将字符串拆分成数组,实现字符串组合
将字符串拆分成数组和实现字符串组合 不能使用语言的基本分割组合函数(如 Java 的 String.split, php 的 explode 和 implode) 1) 字符串拆分成字符串数组,如&q ...
- 把一个字符串分割成数组 php_PHP怎么将字符串拆分成数组
在日常项目开发过程中,较长的字符串可能需要被拆分成数组形式,以便被展现或用于判断验证.那么将字符串拆分成数组,也很容易实现,我们可以直接通过PHP中的explode函数来进行拆分. 下面我们就通过简单 ...
- new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解
new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...
- 每天一道LeetCode-----将字符串拆分成有效的ip地址
Restore IP Addresses 原题链接Restore IP Addresses 给定一个仅包含数字的字符串,将其拆分成有效的ip地址 题目的主要意思实际是在字符串中添加三个点,从而构成一个 ...
- mysql信息函数和加密函数_MYSQL 常用函数(数学、字符串、日期时间、系统信息、加密)...
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...
- python将字符串拆分成单词_将字符串拆分为单词和标点符号
我正在尝试将字符串拆分为单词和标点符号,并将标点符号添加到拆分生成的列表中. 例如: >>> c = "help, me" >>> print ...
最新文章
- mapreduce value 排序_MapReduce知识点一
- java element 属性_属性'value'在'HTMLElement'类型的值上不存在
- 转载:SendMessage()这个函数有很多奇妙的用途
- 光纤到桌面FTTD解决方案
- gawk Notes(2)
- 20155213免考项目——简易的HIDAttack
- 互动教程 for Excel 2016
- tsplay 打流,EasyICE测试
- Altium Designer 学习笔记
- 3D-06-打飞碟(物理运动)
- 基于 element ui 之 ui-tooltip 组件
- 英语中与数字有关的表达方式
- 怎么修改html上的文字大小,网页字体大小怎么改_电脑网页字体怎么调整-win7之家...
- 小程序生成自带参数的小程序码
- 2021-07-02软件构造学习中遇到的问题
- C语言|博客作业07
- clickhouse 物化视图使用详解
- 名企笔试:网易游戏2017招聘笔试题(赶去公司)
- HyperLPR车牌识别库代码分析总结(15)
- 老版本微信平台服务器部署步骤(没那么坑版)