[mysql] 一行变多行

news2024/11/13 11:49:07
  1. 数据表
CREATE TABLE `table_main` (
  `ID` char(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
  `zb_list_str` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci ,
  `kf_list_str` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,
  PRIMARY KEY (`ID`) USING BTREE,

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 ;

在这里插入图片描述

  1. 一行变多行
SELECT
*
FROM
  table_main,
  JSON_TABLE (
    JSON_EXTRACT( CONCAT( '["', REPLACE ( zb_list_str, ',', '","' ), '"]' ), '$' ),
  '$[*]' COLUMNS (id FOR ORDINALITY,  `zb` VARCHAR (255) PATH '$' )) AS t_zb JOIN 
  JSON_TABLE (
    JSON_EXTRACT( CONCAT( '["', REPLACE ( kf_list_str, ',', '","' ), '"]' ), '$' ),
  '$[*]' COLUMNS (id FOR ORDINALITY,`kf` VARCHAR (255) PATH '$' )) AS t_kf 

在这里插入图片描述

  1. 步骤解释说明
  1. 用CONCAT() 和REPLACE () 将待拆分字符串str str_part1,str_part2,str_part3 拼成json数组格式的字符串json_array_str “[“str_part1”,“str_part2”,“str_part3”]”
  2. 用JSON_EXTRACT() 将json_array_str 转成 json_array
  3. 用JSON_TABLE () (对mysql 版本有要求) 将json_array渲染成一个表格(可以有多行)即可
  1. 其他
  • 可以同时如此操作多个字段
  • 每个字段拆分出来的表格(如t_zb)可像普通表格一样进行join等操作(示例中需要两张表的笛卡尔积)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2037659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在宝塔面板下安装WordPress

宝塔面板是服务器管理好助手,尤其在Linux系统下,提高了管理的可视化,降低了Linux服务器的使用门槛。 WordPress是个非常好的博客系统,由于支持海量主题模板、各种类型的插件,因此已经成为建设各类网站的首选框架。 今…

java 获取request中的json请求体

Java 获取request中的json请求体 简介 在Java开发中,有时我们需要从HTTP请求中获取JSON格式的数据。本文将详细介绍如何在Java中获取request中的json请求体。 流程概览 以下是获取request中的json请求体的整体流程: 步骤 描述 1 获取HttpServletReque…

代码规范 —— 并发编程规范

优质博文:IT-BLOG-CN 【1】【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。 说明: 资源驱动类、工具类、单例工厂类都需要注意。 【2】【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。…

Adobe Illustrator 2023 for Mac/Win:创意设计的强大引擎

Adobe Illustrator 2023(简称AI 2023)是一款专为设计师打造的矢量图形编辑软件,无论是Mac还是Windows平台,它都以其卓越的性能和丰富的功能赢得了业界的广泛赞誉。这款软件在设计领域具有举足轻重的地位,为设计师们提供…

算法的学习笔记—删除链表中重复的结点(牛客JZ76)

😀前言 在链表操作中,删除重复节点是一个常见的问题。特别是在排序链表中,连续的重复节点不仅会影响链表的结构,还会带来额外的复杂度。本文将介绍一种高效的算法,用于删除链表中所有重复的节点,并保留链表…

GPT-4o mini发布,轻量级大模型如何颠覆AI的未来?

从巨无霸到小巨人:GPT-4o Mini的创新之路 ©作者|潇潇 来源|神州问学 引言 随着人工智能技术的飞速进步,AI领域的竞争日益激烈,大型模型的发布几乎成为常态。然而,这些庞大的模型通常需要大量的计算资源和存储空间&#xff…

如何使用Zabbix API批量修正主机名称

作者 乐维社区(forum.lwops.cn) 许远 先说为什么要修正? 这其实源自于Ansible安装zabbix agent的一个小Bug:有小伙伴发现,利用ansible批量安装zabbix agent后,zabbix系统上显示的主机名出错了,主…

疫苗发布和接种预约系统

TOC springboot173疫苗发布和接种预约系统 第一章 绪论** 1.1 研究背景 在现在社会,对于信息处理方面,是有很高的要求的,因为信息的产生是无时无刻的,并且信息产生的数量是呈几何形式的增加,而增加的信息如何存储以…

【Next】初识 Next

概述 在Reactr中创建SSR应用,需要调用 ReactDOM.hydrateRoot 函数,而不是 ReactDOM.createRoot。 createRoot:创建一个Root,接着调用其 render 函数将 App 直接加载到页面上hydrateRoot:创建水合 Root, 是在激活的模式下渲染 App 服务端可用 ReactDOM…

如何在 Odoo 16 中修改现有网页

在 Odoo 中,网页是指在 Odoo 网站上可访问的特定页面或 URL。Odoo 中的网页是通过内置网站模块创建和管理的,该模块允许您设计和自定义网页的内容、布局和功能。 Odoo 中的网页是您网站的构建块,可用于呈现信息、展示产品或服务、通过表单收…

「MyBatis」实现留言板

效果预览 界面长这样,每次提交之后,会在下面生成一条记录,刷新页面或者关掉后重新打开,这些记录仍然存在 思路 我们需要在数据库中保存一条一条的消息,那就需要一个类 Data public class MessageInfo {private Integ…

【笔记】Swin-Transformer 的计算量与Transformer的计算量的对比:前者通过使用新颖的窗口技巧,将后者的高阶项变为低阶,大大降低了计算量

补充1: 局部窗口内的自注意力(W-MSA): 在 Swin Transformer 中,输入特征图被划分为多个小的窗口(例如 7x7 的窗口)。在每个窗口内,计算自注意力机制(W-MSA, Window-based Multi-Head…

【新手入门必看】字符串

一、初识字符串 1、定义的几种格式 和整型数组一样&#xff1a;int data[]{1,2,3,4,5}; char str[]{h,e,l,l,o}; 之前我们学过数组名就等于地址&#xff0c;那么也可以通过指针的方式来定义char *pchar"hello"; #include <stdio.h>int main(int arg…

C++-类与对象(中上篇)

一、目标 1. 类的 6 个默认成员函数 2. 构造函数 3. 析构函数 二、对目标的介绍 1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生…

Spring源码-源码层面讲解bean标签添加了lookup-method和replaced-method标签之后源码执行流程,以及对象实例化的流程

bean.xml文件添加lookup-method和replaced-method标签 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…

怎么转换视频格式?常见的3种格式转换方法

随着手机等工具的普及&#xff0c;拍视频已经变成我们日常生活娱乐的方式。在享受拍视频带来的快乐同时&#xff0c;我们需要灵活运用格式转换来满足不同的播放设备和使用场景的需求。怎么转换视频格式&#xff1f;很多人为了视频格式转换这个问题烦恼。 视频格式转换&#xf…

ComfyUI - 在服务器中部署 AIGC 绘画的 ComfyUI 工具 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/141140498 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 ComfyU…

PhpStorm完全配置指南:打造高效PHP开发环境!

Phpstorm环境配置与应用&#xff0c;具体包括安装PhpStorm、配置PHP运行环境、Apache集成、调试和部署等步骤。下面将详细展开每个步骤的具体操作和注意事项。 PhpStorm的下载与安装 下载地址&#xff1a;访问PhpStorm的官网下载地址&#xff0c;选择合适的版本进行下载。建议选…

【零基础学习CAPL语法】——TestWaitForMessage:等待指定报文

文章目录 1.函数介绍2.实例1.函数介绍 TestWaitForMessage——等待指定报文 long TestWaitForMessage(dbMessage aMessage, dword aTimeout); long TestWaitForMessage(dword aMessageId, dword aTimeout); long TestWaitForMessage(dword aTimeout); 若在aTimeout时间内等到了…

练习题PHP5.6+变长参数 ⇒ usort回调后门 ⇒ 任意代码执行

突破长度限制 使用usort上传后门 usort — 使用用户自定义的比较函数对数组中的值进行排序 paramusort(...$GET); ...为php设置可变长参数 在url地址栏中输入[]test&1[]phpinfo();&2assert 包含了phpiinfo&#xff08;&#xff09;命令执行 结合usort使用 assert…