在 MySQL 中将 JSON 数组转换为行
在 MySQL 5.7 及更早版本中,操作 JSON 可能具有挑战性,尤其是在将 JSON 数组转换为行。然而,在 MySQL 8 中,新的 JSON_TABLE 函数提供了一个简单的解决方案。
JSON_TABLE 函数
JSON_TABLE 函数允许您轻松地从 JSON 文档和映射中提取数据它到关系表模式。要将 JSON 数组转换为行,请使用以下语法:
SELECT * FROM JSON_TABLE( <json_array>, "$[*]" COLUMNS( <column_name> <data_type> PATH "$" ) ) <table_alias>;
示例
考虑一个 JSON 数组:
[5, 6, 7]
您可以使用 JSON_TABLE 将其转换为表格:
SELECT * FROM JSON_TABLE( '[5, 6, 7]', "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
输出将be:
| Value | |---|---| | 5 | | 6 | | 7 |
一般字符串分割
MySQL 缺乏原生的字符串分割功能。但是,您可以使用 JSON_TABLE 来实现类似的结果:
set @delimited = 'a,b,c'; SELECT * FROM JSON_TABLE( CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'), "$[*]" COLUMNS( Value varchar(50) PATH "$" ) ) data;
这会将分隔字符串拆分为 JSON 数组,然后将其转换为表。
以上是MySQL 的 JSON_TABLE 函数如何将 JSON 数组转换为行?的详细内容。更多信息请关注PHP中文网其他相关文章!