【发布时间】:2020-01-11 16:48:42
【问题描述】:
我有一个 MySQL 数据库,其中一张表称为“my_table”。在此表中,其中一列称为“my_json_column”,该列在 MySQL 中存储为 JSON 对象。 JSON 对象有大约 17 个键:值对(见下文)。我只想从返回 17 个字段中的 4 个的 MySQL 查询中返回一个“精简”的 JSON 对象。
我尝试了许多不同的 MySQL 查询,见下文,但我似乎无法获得返回的子集 JSON 对象。我确信这很简单,但我一直没有成功。
类似这样的:
SELECT
json_extract(my_json_column, '$.X'),
json_extract(my_json_column, '$.Y'),
json_extract(my_json_column, '$.KB'),
json_extract(my_json_column, '$.Name')
FROM my_table;
产量:
5990.510000 90313.550000 5990.510000 "Operator 1"
我想用键值对获得这个结果(返回的 JSON 对象):
[ { X: 5990.510000, Y: 90313.550, KB: 2105, Name: "Well 1" } ]
样本数据:
{
"Comment" : "No Comment",
"Country" : "USA",
"County" : "County 1",
"Field" : "Field 1",
"GroundElevation" : "5400",
"Identifier" : "11435358700000",
"Interpreter" : "Interpreter 1",
"KB" : 2105,
"Name" : "Well 1",
"Operator" : "Operator 1",
"Owner" : "me",
"SpudDate" : "NA",
"State" : "MI",
"Status" : "ACTIVE",
"TotalDepth" : 5678,
"X" : 5990.510000,
"Y" : 90313.550
}
提前谢谢你。
【问题讨论】:
-
有人想知道您为什么要使用 JSON。为什么不只使用普通列而不是 JSON 对象的字段的普通表?那你就用
SELECT X, Y, KB, Name FROM my_table。
标签: mysql sql json database select