首页 >数据库 >mysql教程 >如何在 MySQL 中高效地将 JSON 数组转换为行?

如何在 MySQL 中高效地将 JSON 数组转换为行?

Patricia Arquette
Patricia Arquette原创
2024-11-30 14:33:15308浏览

How Can I Efficiently Convert JSON Arrays into Rows in MySQL?

在 MySQL 中将 JSON 数组转换为行

在 MySQL 5.7 中,JSON 操作得到了极大增强,为提取和处理数据提供了多种功能在 JSON 结构中。然而,将 JSON 数组转换为行的逆操作并不简单。

JSON 数组到行

为 JSON 数组中的每个元素插入一行,以前需要使用多个 JSON_EXTRACT() 查询的手动方法。但随着 MySQL 8 中 JSON_TABLE 函数的引入,这个过程变得更加简化:

SELECT *
FROM JSON_TABLE([5, 6, 7], '$[*]'
COLUMNS(
  Value INT PATH '$'
));

JSON 数组到逗号分隔的字符串

将 a使用 GROUP_CONCAT() 将 JSON 数组转换为逗号分隔的字符串,一个技巧是使用:

set @delimited = 'a,b,c';

SELECT *
FROM JSON_TABLE(
  CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'),
  '$[*]'
  COLUMNS(
    Value varchar(50) PATH '$'
  )
);

此方法将分隔字符串视为 JSON 字符串,从而生成转换后的逗号分隔字符串。

缺少 STRING_SPLIT 函数

虽然 MySQL 缺少专用的 STRING_SPLIT() 函数,但 JSON_TABLE 函数可以作为分割操作的替代,有效地将分隔字符串分解为其组件。

以上是如何在 MySQL 中高效地将 JSON 数组转换为行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn