首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -将所有JSON属性作为单独的列列出

MySQL -将所有JSON属性作为单独的列列出
EN

Stack Overflow用户
提问于 2020-03-31 08:27:53
回答 1查看 277关注 0票数 0

我们将非结构化数据作为JSON存储在MySQL中(其中一个表与结构化数据一起)。我们想提取数据,但我们不确定如何提取JSON数据,因为JSON数据可以包含任何属性(没有公共属性)。

您是否可以帮助我通过不指定属性名称来确定所有属性。

EN

回答 1

Stack Overflow用户

发布于 2020-03-31 08:38:36

在查询开始执行并检查行中的数据后,SQL无法动态地将更多列追加到其结果集中。在分析SQL查询时,在查询开始执行和检查数据之前,选择列表中的列必须是固定的。因此,您必须拼写出查询的select-list中的列。这意味着您必须事先知道所有属性的名称。

您可以执行一个查询来获取所有属性名称:

代码语言:javascript
复制
SELECT JSON_KEYS(mydata) FROM MyTable;

这将返回每行的键数组。将会有大量的重复。在您的客户端应用程序中,您将编写代码来解析结果,并形成不同键的列表。

然后,您可以使用该列表形成第二个SQL查询,在select-list中为您在第一步中注意到的每个键提供一列。

另一种方法是忘记在单独的列中返回属性。只需按原样从数据库返回JSON文档即可。然后在从结果集中获取JSON之后分解它,并在应用程序代码中以这种方式处理它。

无论如何,您都需要在运行查询之前或运行查询之后编写应用程序代码。

欢迎学习“灵活的”数据库设计!:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60941602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档