sql语句将数据库一条数据通过分隔符切割成多列方法实例

作者:二次元程序码农 时间:2024-01-15 02:24:45 

sql语句,将数据库一条数据通过分隔符切割成多列 需求场景应对措施效果展示具体代码

需求场景

在实际场景之中,我们有时候会遇到一种情况,就是数据库中某一字段存了很长的一段字符串,里面用了分隔符进行分割,但是很不直观,你想查一下数据库把这个字段下的数据,按分隔符切割出来,并划分到下面几列上面,但又苦于只能写sql。这种情况下应该怎么办呢。

应对措施

首先这种情况下,sql是可以完全满足需求的。sql在代码中不仅可以用curd,更可以对数据的查询做一些操作,但是注意不要出现慢查询。

话题转回来,无论是写Java还是写SQL,首先都要对需求有一个实现的思路,这里我的思路是:

因为不知道这个字段下各个数据的长度,所以不能用substring_index进行简单的划分,需要像剥洋葱那样一层一层的剥下来,所以需要用两个substring_index嵌套来进行切割,那切割的过程中怎么去让数据也就是洋葱皮从第一层到第二层。这里就涉及到对自增序列的使用。

大家肯定知道在联表查询的时候,需要对两个表命名别名,这里我们的操作也是一样一个命名为t用来展示数据,一个命名为d用来通过切割后,将多余的数据向下用列来进行展示。

所以在上面进行切割的时候,最里面的选中第几层数据的substring_index里面的第三个参数就使用d里面的自增id来进行实现,当然也可以选择其他拥有自增属性的字段,因为这里我们并不需要它的数据,而是需要它的自增属性,来代替while或者for中的那个i++来让数据向下命中下一个分隔符继续切割下去,而最外层的substring_index就用来选择展示多长的数据就好了。

做完上面的切割,并且拥有了可以向下一分隔符切割的手段之后,怎么让这段代码循环起来呢。一般可以使用while来进行。但是我们之前用到了id的自增属性,所以这里我们依旧使用这个属性,并且用join字段,计算出每条数据中切割后数据的长度后。通过id++来进行循环。(因为切割只能切割一回,所以这里使用的是replace来将分隔符替换为‘’数据,实现分隔符的消失。

效果展示

这里需要对value数据进行切割,并展示variable数据,id为自增主键。

sql语句将数据库一条数据通过分隔符切割成多列方法实例

通过查询语句查询之后将数据分列之后展示,如果需要id自增,大家可以对第一个t.id自行修改。

sql语句将数据库一条数据通过分隔符切割成多列方法实例

具体代码

作为一个开发人员,思路和对业务的分析永远是最重要的,代码的实现不过是最后对于解题成果的展示。这里附加上我的SQL代码,供大家品鉴。

SELECT
t.id,
t.variable,
substring_index(
substring_index(
t.value,
',',
b.id
),
',', -1
) AS value
FROM
sys.sys_config t
JOIN sys.sys_config b ON b.id <= (
length(t.value) - length( REPLACE ( t.value, ',', '' )) + 1
);

来源:https://blog.csdn.net/qq_43881656/article/details/127230250

标签:sql,分隔符,拆分
0
投稿

猜你喜欢

  • css中如何使div居中(垂直水平居中)

    2007-08-13 08:17:00
  • Python实战小项目之Mnist手写数字识别

    2023-01-20 23:24:56
  • python微信跳一跳系列之色块轮廓定位棋盘

    2022-10-18 04:33:22
  • 如何高效地访问记录集?

    2009-11-22 19:25:00
  • 科学知识:理解socket

    2022-11-28 09:50:07
  • viper配置框架的介绍支持zookeeper的读取和监听

    2024-04-27 15:32:12
  • python中函数总结之装饰器闭包详解

    2023-06-27 02:55:04
  • 初识python的numpy模块

    2021-10-06 10:04:57
  • 如何让shell终端和goland控制台输出彩色的文字

    2023-07-13 03:24:56
  • 群组功能和用户沟通

    2009-07-19 14:07:00
  • python 基本结构语句(函数和模块)

    2023-06-14 00:37:56
  • MySQL回表查询与索引覆盖的区别

    2024-01-21 03:27:37
  • Python3中map()、reduce()、filter()的用法详解

    2024-01-03 01:27:23
  • golang语言http协议get拼接参数操作

    2024-05-08 10:45:10
  • python装饰器使用实例详解

    2021-09-30 15:26:50
  • 在ASP中使用SQL语句之4:联合语句

    2007-08-11 12:34:00
  • 解决Node.js mysql客户端不支持认证协议引发的问题

    2024-01-23 18:16:13
  • 通过JavaScript实现扑克牌游戏的示例代码

    2024-05-13 09:20:40
  • go如何利用orm简单实现接口分布式锁

    2023-06-17 16:55:04
  • Python爬虫文件下载图文教程

    2023-11-18 23:59:03
  • asp之家 网络编程 m.aspxhome.com