MySQL字符串分割_c语言中如何截取字符串

MySQL字符串分割_c语言中如何截取字符串有分隔符的字符串拆分题目要求数据库中num字段值为:实现的效果:需要将一行数据变成多行实现的SQLSELECTSUBSTRING_INDEX(SUBSTRING_INDEX(‘7654,7698,7782,7788′,’,’,help_topic_id+1),’,’,-1)ASnumFROMmysql.help_topic…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

有分隔符的字符串拆分

题目要求

数据库中 num字段值为:
数据库中 num字段值

实现的效果:需要将一行数据变成多行
实现效果

实现的SQL

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 

涉及的知识点


一、字符串拆分: SUBSTRING_INDEX(str, delim, count)

  1. 参数解说
参数名 解释
str 需要拆分的字符串
delim 分隔符,通过某字符进行拆分
count 当 count 为正数,取第 n 个分隔符之前的所有字符; 当 count 为负数,取倒数第 n 个分隔符之后的所有字符。

2. 举例
(1)获取第2个以“,”逗号为分隔符之前的所有字符。

SUBSTRING_INDEX('7654,7698,7782,7788',',',2)

获取第2个以“,”逗号为分隔符之前的所有字符

(2)获取倒数第2个以“,”逗号分隔符之后的所有字符

SUBSTRING_INDEX('7654,7698,7782,7788',',',-2)

获取倒数第2个以“,”逗号分隔符之后的所有字符

二、替换函数:replace( str, from_str, to_str)

  1. 参数解说
参数名 解释
str 需要进行替换的字符串
from_str 需要被替换的字符串
to_str 需要替换的字符串

2. 举例
(1)将分隔符“,”逗号替换为“”空。

REPLACE('7654,7698,7782,7788',',','')

将分隔符“,”逗号替换为“”空

三、获取字符串长度:LENGTH( str )

  1. 参数解说
参数名 解释
str 需要计算长度的字符串

2. 举例
(1)获取 ‘7654,7698,7782,7788’ 字符串的长度

LENGTH('7654,7698,7782,7788')

获取 '7654,7698,7782,7788' 字符串的长度

实现的SQL解析



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 

此处利用 mysql 库的 help_topic 表的 help_topic_id 来作为变量,因为 help_topic_id 是自增的,当然也可以用其他表的自增字段辅助。

help_topic 表:
help_topic 表

实现步骤:

Step1:首先获取最后需被拆分成多少个字符串,利用 help_topic_id 来模拟遍历 第n个字符串。

涉及的代码片段:

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

实现过程

Step2:根据“,”逗号来拆分字符串,此处利用 SUBSTRING_INDEX(str, delim, count) 函数,最后把结果赋值给 num 字段。

涉及的代码片段:

SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',help_topic_id+1),',',-1) AS num 
第一步:

以”,”逗号为分隔符,根据 help_topic_id 的值来截取第n+1个分隔符之前所有的字符串。 (此处 n+1 是因为help_topic_id 是从0开始算起,而此处需从第1个分隔符开始获取。)

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

eg:
当 help_topic_id = 0时,获取到的字符串 = 7654
当 help_topic_id = 1时,获取到的字符串 = 7654,7698
…(以此类推)


第二步:

以”,”逗号为分隔符,截取倒数第1个分隔符之后的所有字符串。

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

eg:
根据第一步,当 help_topic_id = 0时,获取到的字符串 = 7654,此时第二步截取的字符串 = 7654
根据第一步,当 help_topic_id = 1时,获取到的字符串 = 7654,7698,此时第二步截取的字符串 = 7698
…(以此类推)


最终成功实现了以下效果 ~

这里写图片描述

注:不含分隔符的字符串拆分可参考 MySQL——字符串拆分(无分隔符的字符串截取)

如果以上有错误的地方,希望大家能够指正 ~ 谢谢 ~
如果你有更好的方法,那就赶紧留言分享噢 ~ 谢谢 ~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184942.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VLAN技术_vlan的基本概念、作用和实现原理

    VLAN技术_vlan的基本概念、作用和实现原理本文首次发布于MlinBlog、简书、CSDN,作者@木林(Mlin),转载请保留原文链接。前言正文一、VLAN基本概念1VLAN概述2VLAN帧格式3VLAN链路类型4PVID5VLAN端口类型5.1Access端口5.2Trunk端口5.3Hybrid端口6VLAN划分6.1VLAN划分方法6.2VLAN划分匹配优先级…

    2022年8月10日
    4
  • vlan的作用和特点_VLAN的概念

    vlan的作用和特点_VLAN的概念VLAN它的全称是虚拟局域网,作用就是把连接在同一交换机下的主机分为更小的逻辑网段,以减少广播的数量,不同的VLAN之间不能通讯,这样广播就被限制在同一个业务需求主机的VLAN里,即便是连接在同一个交换机下,不同的VLAN也不会收到广播的ARP请求!如果他们之间需要通讯,只能借助路由器或三层交换机没有携带VLAN(Tag)的数据帧携带VLAN(Tag)的数据帧标签类型把同一物理局域网内的不同用户逻辑地划分成不同的广播域、有助于控制流量、减少设备投资、简化网络管理。提高网络的安全性。1)区段化:将一个网络

    2022年8月10日
    3
  • c++输入输出流

    输入输出流类关系图iostream头文件中4种流对象1.cout流在内存中对应开辟了一个缓存区,用来存放流中的数据,当向cout流插入一个endl时,不论缓冲区是否已满,都立即输出流中的所有数据

    2021年12月19日
    57
  • MySQL 索引概览

    MySQL 索引概览前言在SQL优化中,索引是至关重要的一环,能给查询效率带来质的飞跃,但是索引并不是万能的,不合理的索引设计甚至会拖慢查询效率。本文将详细介绍各类索引的定义、用法以及分类,并讨论使用索引时应该权衡的要素。文章目录前言概览索引定义索引优缺点优点缺点索引类型按功能逻辑划分普通索引唯一索引主键索引全文索引按物理实现划分聚集索引(clusteredindex)非聚集索引(non-clusteredindex)按字段个数划分单一索引组合索引最左匹配原则概览索引定义索引是一种专门用于帮助SQL高效获

    2022年6月24日
    24
  • php 2021永久激活码(最新序列号破解)「建议收藏」

    php 2021永久激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    56
  • Silverlight网站“运行后一片空白”的解决方案[通俗易懂]

    Silverlight网站“运行后一片空白”的解决方案[通俗易懂]     我近日在一次项目中,使用了ESRI的SilverlightAPI进行了开发。结果在进行网站部署时遇到了“运行后一片空白”的问题。现将解决办法如下:     如果您想在IIS服务器上使用Silverlight程序,需要使用xap、XAML文件类型,所以必须在IIS中注册xaml和xap的MIME文件类型。 打开IIS->站点属性->HTTP头->MIME类型->新建:

    2022年10月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号