【发布时间】:2022-01-08 20:30:20
【问题描述】:
我正在 MYSQL 列中收集 JSON 数据。 我想在这个 JSON 数据中计算具有相同关键字的数字。
示例 JSON 列:
| id | column |
|---|---|
| 1 | { "2": { "model": "Test Model" }, "3": { "model": "Test Model" } } |
| 2 | { "4": { "model": "Test Model" }, "2": { "model": "Test Model" } } |
| 3 | { "1": { "model": "Test Model" }, "4": { "model": "Test Model" } } |
| 4 | { "2": { "model": "Test Model" } } |
我想要的输出:
| key | count |
|---|---|
| 2 | 3 |
| 4 | 2 |
| 3 | 1 |
| 1 | 1 |
我可以使用简码轻松做到这一点吗?
Mysql版本:8.0.27
【问题讨论】:
-
旁注:JSON 的架构对我来说看起来相当静态。您应该考虑不要滥用 JSON,而是使用关系方式,例如(查找和/或链接)表和列。那么这将是一个简单的聚合。
-
Mysql版本:8.0.27
-
虽然将 JSON 记录存储在数据库中非常好,但如果您还发现自己需要使用 SQL 来查看这些记录,您将 SO MUCH BETTER 对 还围绕重要的字段定义真正的关系模式。在插入/更新时解析 JSON 一次,而不是每个单个查询,效率更高。然后,您还可以在字段上使用 indexes,这是 SQL 性能的关键。同样,您不需要为所有 JSON 属性提取和定义关系字段……这只是您以后需要在查询中使用的字段。