【发布时间】:2020-07-20 17:12:13
【问题描述】:
我知道问题的重复性的可能性,但我没有找到任何可以帮助我解决我的情况的东西。
我的 mysql 列上有这个 json:
[
{
"ddi": "55",
"routing_id": "7",
"price": {
"mt": 0.0285,
"mo": 0.0285
}
},
{
"ddi": "598",
"routing_id": "10",
"price": {
"mt": 0.06,
"mo": 0.06
}
}
]
当我执行以下查询时:
SELECT JSON_EXTRACT(my_column,'$[*].ddi') as ddi FROM my_table
我得到了结果:
["55", "598"]
我的问题是: 有一种方法可以在行上返回此数据而不是 json 数组? 喜欢:
Ddi
55
598
【问题讨论】:
-
为什么需要这种格式的数据?获取 json 数据后,您可以根据需要操作该数据
-
嗨@AbuSufian 也许我对这样做的方式有误,但是有了这些数据,我假装在另一个表上进行了 INNER JOIN”,以通过 ddi 获取国家/地区名称。我正在尝试通过一个查询来执行此操作,而不是操纵 json 并执行另一个查询。
-
如果您需要访问 JSON 中的各个字段以进行连接,这是数据库设计的危险信号。您应该以规范化的方式构造数据,而不是使用 JSON。
-
@BillKarwin 嗯好的...根据您的评论,更好的方法是操作 json,然后进行新的查询以实现我的意图,对吗?
-
我不是这个意思。我的意思是如果您想稍后查询单个元素,请不要使用 JSON 来存储结构化数据。使用普通的列和行。在这种情况下,您需要一个表,每个
ddi有一行,另一个表每个ddi的每个价格一行。使用 JSON 可以方便地一次性存储复杂的嵌套数据结构,但您的问题是一个示例,说明以 JSON 格式而不是普通格式存储数据会使以后的查询变得更难。跨度>
标签: mysql arrays json json-extract