我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MYSQL -- 根据JSON列将一行拆为多行

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MYSQL -- 根据JSON列将一行拆为多行

使用JSON_TABLE

例如表中存在 json 字段 json_filed
在这里插入图片描述
我们要实现如下效果
在这里插入图片描述
可以使用 json_table 去实现,json_table 可以将 json 字段转换为 table 去使用

SELECT json_field,j.json_single_value FROM `user`left join json_table(json_field, '$[*]' columns (json_single_value int path '$')) as j on true

查询结果如下,由一行分割成多行
在这里插入图片描述

Incorrect arguments to JSON_TABLE

有些时候我们会用到子查询,如下

SELECT a.json_field,j.json_single_value FROM ( select * from `user` where 1=1) as aleft join json_table(a.json_field, '$[*]' columns (json_single_value int path '$')) as j on true

我们需要先对目标表进行筛选,用来节省占用内存,并提高查询效率,然后再将其 json 字段转换为 table
但是当我们运行上面的 SQL 时会爆出 Incorrect arguments to JSON_TABLE 的错误。
原因是我们子查询中的 json_field 字段格式有问题,需要我们强制转换一下

SELECT a.json_field,j.json_single_value FROM ( select * from `user` where 1=1) as aleft join json_table(CAST(a.json_field AS JSON), '$[*]' columns (json_single_value int path '$')) as j on true

来源地址:https://blog.csdn.net/qq_40096897/article/details/130288773

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MYSQL -- 根据JSON列将一行拆为多行

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

下载Word文档

猜你喜欢

mysql怎么根据逗号将一行数据拆分成多行数据

这篇文章主要介绍“mysql怎么根据逗号将一行数据拆分成多行数据”,在日常操作中,相信很多人在mysql怎么根据逗号将一行数据拆分成多行数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql怎么根据逗号
2023-06-22

Pandas怎么将一列中的文本拆分为多行

这篇文章将为大家详细讲解有关Pandas怎么将一列中的文本拆分为多行,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在数据处理过程中,经常会遇到以下类型的数据:在同一列中,本该分别填入多行中的数据,被填
2023-06-04

mysql中如何将存在分隔符号的一列进行拆分,成为多行

mysql中如何将存在分隔符号的一列进行拆分,成为多行 -- ****************************** 写在前面的说明 **********************************/* student 为 上面左
2023-08-17

MySQL将多行数据转换为一行数据的实现示例

目录摘要:正文:基本语法示例注意GROUP_CONCAT基本语法示例示例 1: 基本的 GROUP_CONCAT 使用示例 2: 使用 ORDER BY示例 3: 使用 SEPARATOR注意事项摘要:在mysql中,如果你想要将某个属性
MySQL将多行数据转换为一行数据的实现示例
2024-09-09

mysql中将多行数据合并成一行数据

一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句: 1 SELECT am.activeId,m.modelName 2 FROM acti
mysql中将多行数据合并成一行数据
2018-01-13

数据库多行转换为单一列

数据库存储与实际显示需求不一样时,我们得写SQL来实现数据呈现:如: 先来看看数据表: CREATE TABLE [dbo].[Expenses]( [Date] DATE, [Description] NVARCHAR(40), [Char
数据库多行转换为单一列
2021-06-02

mysql逗号拼接的列拆分为多行-百分百实测有效

第一步:首先查看你所操作的表是否有一列自增的id列,如果是随机字符串表示的id列,还需要把表查询一次变成含有id自增列的表,具体如下所示: 没有自增id前: SELECT * from t_xfcf_tq as t 加了自增id后: SE
2023-08-18

利用FOR XML PATH行转列(根据某字段分组,多行数据转成一行,并用逗号隔开)

CREATE TABLE #TEST(A VARCHAR(10) NULL,B VARCHAR(MAX) NULL)INSERT INTO #TESTSELECT "A","A001"UNION ALLSELECT "A","A002"UNION ALLSEL
利用FOR XML PATH行转列(根据某字段分组,多行数据转成一行,并用逗号隔开)
2018-05-13

我们如何将数据导出到 CSV 文件,并将列标题作为第一行?

为了添加列值,我们需要使用 UNION 语句。可以借助以下示例进行演示 -示例在此示例中,student_info 中的数据将导出到 CSV 文件。 CSV 文件的第一行将作为列的名称。mysql>(SELECT id, Name, Add
2023-10-22

编程热搜

目录