广告
返回顶部
首页 > 资讯 > 数据库 >mysql字符串分割功能实现
  • 627
分享到

mysql字符串分割功能实现

mysql字符串分割mysql字段分割截取 2023-02-15 11:02:23 627人浏览 安东尼
摘要

目录Mysql字符串分割1、字符串分割函数2、创建存储过程,循环插入截取的每一条数据扩展:mysql字段的分割截取功能(模拟split)mysql字符串分割 1、字符串分割函数 drop function if

mysql字符串分割

1、字符串分割函数

drop function if exists str_for_substr;
CREATE
    DEFINER = `root`@`%` FUNCTION `str_for_substr`(`num` int, `str` varchar(5000))
    RETURNS varchar(100) no sql
BEGIN
    
    SET @str_for_substr =
            SUBSTRING(
                    SUBSTRING_INDEX(str, '###', num + 1),
                    CASE num
                        WHEN 0 THEN
                                CHAR_LENGTH(
                                        SUBSTRING_INDEX(str, '###', num)
                                    ) + 1
                        ELSE
                                CHAR_LENGTH(
                                        SUBSTRING_INDEX(str, '###', num)
                                    ) + 4
                        END,
                    CASE num
                        WHEN 0 THEN
                                CHAR_LENGTH(
                                        SUBSTRING_INDEX(str, '###', num + 1)
                                    ) - CHAR_LENGTH(
                                        SUBSTRING_INDEX(str, '###', num)
                                    )
                        ELSE
                                CHAR_LENGTH(
                                        SUBSTRING_INDEX(str, '###', num + 1)
                                    ) - CHAR_LENGTH(
                                        SUBSTRING_INDEX(str, '###', num)
                                    ) - 1
                        END
                );
    RETURN @str_for_substr;
END;

2、创建存储过程,循环插入截取的每一条数据

drop procedure if exists split_str;
CREATE
    DEFINER = `root`@`%` PROCEDURE `split_str`()

BEGIN

    DECLARE cnt int default 0;
    DECLARE num int default 0;
    DECLARE i int default 0;
    DECLARE j int default 0;
    declare str varchar(4000);

#   统计当前截取字段表的数据量
    select count(1) into cnt from test;
#   循环查询每一条数据,此处可以换成游标处理
    while i<= cnt do
        select query_knowledge_list_string into str from test limit i,1;
#       查询每条数据###出现的次数
        SET num = (LENGTH(str) - LENGTH(REPLACE(str, '###', ''))) / 3;
        while j <= num do
#               循环插入截取后的数据
                INSERT INTO test1 (knowledge_name, subject_name, grade_name)
                select str_for_substr(j,str), subjectName, grade_name
                from test limit i,1;
            set j = j + 1;
            end while;
#       循环值归零
        set j = 0;
        set i = i + 1;
        end while;
END;

扩展:mysql字段的分割截取功能(模拟split)

大家好,又见面了。每次见面就说明我又解决了一个疑难杂症。今天这个问题更狠一些,又让我的sql能力有了进一步的提高。简单说我我最近为什么会有这么多的sql问题,主要原因就是我们从数据中台的Hive库同步数据,而他们库里的数据实在是脏的过分,有各种你想象不到数据,而我们也推不动不了他们,没把办法就只能通过sql自己处理。

接下来看看今天的奇葩问题。我们同步过来的数据内容如下。

image.png

最可怕就是在类型的前面多了一些数字加顿号。这些内容对于我来讲是完全没有意义的,我需要的只是顿号后面的内容。那么我应该怎么处理得到后面的内容呢。最先想到的是split. 但是后来查了一下,mysql居然不支持split函数。真是让我大失所望。后来只能去找相近的函数,发现有一个INSTR() 函数,可以用来判断时段中是否包含某个字符串 ,并返回包含字符串对应的索引。在结合SUBSTR函数进行截取,就可以完美解决这个问题了。

同时还要注意,最好做下判断,只有当字段中包含这个字符串时才进行截取,不包含则不截取。最终得到的sql如下:

select 
year,
case when INSTR(subtype,'、')>0 then SUBSTR(subtype,INSTR(subtype,'、')+1)
else subtype END subtype
from 
xxx_table_name

最终得到结果成功。

image.png

到此这篇关于mysql字符串分割的文章就介绍到这了,更多相关mysql字符串分割内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: mysql字符串分割功能实现

本文链接: https://www.lsjlt.com/news/196138.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql字符串分割功能实现
    目录mysql字符串分割1、字符串分割函数2、创建存储过程,循环插入截取的每一条数据扩展:mysql字段的分割截取功能(模拟split)mysql字符串分割 1、字符串分割函数 drop function if...
    99+
    2023-02-15
    mysql字符串分割 mysql字段分割截取
  • MySql字符串拆分实现split功能(字段分割转列)
    目录需求描述实现的sql案例演示字符串拆分: SUBSTRING_INDEX(str, delim, count)替换函数:replace( str, from_str, ...
    99+
    2022-11-13
  • MySql字符串拆分实现split功能(字段分割转列、转行)
    字符串转多行 需求描述    实现的sql     案例演示 字符串拆分: SUBSTRING_INDEX(str, delim, count) 替换函数:replace( str, from_s...
    99+
    2023-09-05
    mysql
  • MySQL查询字段实现字符串分割split功能的示例代码
    目录问题背景场景模拟方法实现SUBSTRING_INDEXLENGTHREPLACESQL解析问题背景 查询MySQL中用逗号分隔的字段【a,b,c】是否包含【a】 场景模拟...
    99+
    2022-11-12
  • MySql字符串拆分如何实现split功能
    这篇文章主要讲解了“MySql字符串拆分如何实现split功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySql字符串拆分如何实现split功能”吧!需求描述数据库中 num字段值为:...
    99+
    2023-06-30
  • 按分隔符分割字符串(DB2/mysql/hive/Oracle)
    1、DB2 --substr+locate/instr DB2没有自己按分隔符分割字符串的函数,只能结合使用 或者在DB2里还可以自己写一个split分割字符串的函数 附:instr函数用法--用来查找指定字符在字符串中出现的位...
    99+
    2023-10-04
    hive mysql oracle
  • Golang 分割字符串的实现示例
    目录1.按空格分割2.按字符/字符串分割3.按多个字符分割4.按多个字符串分割5.其他分割函数6.go-huge-util参考文献在开发过程中,很多时候我们有分割字符串的需求,即把一...
    99+
    2023-05-17
    Golang 分割字符串
  • C++11怎么实现字符串分割
    本文小编为大家详细介绍“C++11怎么实现字符串分割”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++11怎么实现字符串分割”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。C++11 字符串分割代码示例如下#i...
    99+
    2023-06-28
  • Mysql如何将字符串按照指定字符分割
    这篇文章主要介绍“Mysql如何将字符串按照指定字符分割”,在日常操作中,相信很多人在Mysql如何将字符串按照指定字符分割问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql如何将字符串按照指定字符分割...
    99+
    2023-06-30
  • Shell脚本实现简单分割字符串
    我们有这样一个字符串: info='abcd;efgh' 现在想获取abcd和efgh,我们可以简单地用cut工具来获取: fstr=`echo $info | cut -d ; -f 1` sst...
    99+
    2022-06-04
    字符串 脚本 简单
  • C++11实现字符串分割的示例
    C++11 字符串分割代码示例如下,很显然, 使用了C++11 特性,代码简洁好多 #include <iostream> #include <string>...
    99+
    2022-11-13
  • Java中如何实现String字符串分割
    今天小编给大家分享的是Java中如何实现String字符串分割,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。Java中实现String字符串分割的3种方法方法1:split(stri...
    99+
    2023-08-03
  • php数组转字符串分割如何实现
    本篇内容主要讲解“php数组转字符串分割如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php数组转字符串分割如何实现”吧!一、implode函数implode函数是PHP中常用的数组转字...
    99+
    2023-07-05
  • Pythonre.split方法分割字符串的实现示例
    目录re.split方法问题解决方案讨论re.split方法 注:使用前需要引入包(import re) 功能:split能够按照所能匹配的字串将字符串进行切分,返回切分后的字符串列...
    99+
    2022-11-11
  • C++怎么实现字符串切割
    本篇内容介绍了“C++怎么实现字符串切割”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!字符串切割的两种方法字符串切割的使用频率还是挺高的,s...
    99+
    2023-07-02
  • 几种分割字符串实现方法的比较
    在数据库开发中,有时会遇到把字符串,按一定规则进行分割,比如“a,b,c,1,2,3”这样的以逗号为分隔符的字符串,需要把分割出来,分割后单独变行一行记录。首先想到的是使用替换函数把分隔符去掉。于是有了:I...
    99+
    2022-10-18
  • Java实现字符串的分割(基于String.split()方法)
    目录前言一、JDK-1.8-API文档说明(推荐阅读)二、简单的使用1、单个字符分隔2、正则表达式三、Java源码分析1、源代码的测试代码2、源代码运行原理图示3、解读完代码后的总结...
    99+
    2022-11-13
  • Mysql(函数) 字符串截取、拆分, 逗号分割字符串当做 in 的条件
    目录  引言:  数据库函数的总结(一) 1. mysql截取拆分 2. 逗号分割的字符串 作为in条件 -> 2.1 正常的效果应该是  ---> 2.1.1 错误:  3. 字符串合并(多条数据合并 用'、'分割)  引言:  数据库...
    99+
    2023-09-11
    mysql sql 数据库 spring boot mybatis
  • Mysql将字符串按照指定字符分割的正确方法
    目录前言一:分两次查询(不是本文重点,但可以实现)二:将file_ids字段分割成多列,类似Mysql的行转列附:mysql如何将字符串按分隔符拆分总结前言 在某些场景下(比如:用户...
    99+
    2022-11-13
  • SQL实用技巧:如何分割字符串
    create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begi...
    99+
    2014-12-28
    SQL实用技巧:如何分割字符串
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作