在 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中文网其他相关文章!