gpt4 book ai didi

MySQL JSON 对象插入

转载 作者:行者123 更新时间:2023-11-29 09:29:21 24 4
gpt4 key购买 nike

我有以下 JSON:

 {
"params" : {
"A" : 200.5,
"B" : 70.2
}
}

以及下表:

CREATE TABLE `params` (
`param` varchar(255),
`value` float
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

有没有一种方法可以让mysql通过一个插入查询来运行,而不需要使用“while do”直接将所有参数插入到表中,如下所示:

 -------+-------
| param | value |
|-------+-------|
| A | 200.5|
| B | 70.2|
---------------

最佳答案

如果您运行的是 MySQL 8.0,则可以使用 json_keys()从 json 子对象中动态提取键作为 json 数组,然后使用 json_table()将其变成行。然后您可以提取值。

考虑:

insert into `params`
with t as (select '{"params": { "A": 200.5, "B": 70.2 } }' js)
select x.k, json_extract(js, concat('$.params.', x.k)) v
from
t
cross join json_table(
json_keys(js->"$.params"),
"$[*]" columns(k varchar(255) path "$")
) as x

<强> Demo on DB Fiddle

运行查询后表的内容:

param | value:---- | ----:A     | 200.5B     |  70.2

关于MySQL JSON 对象插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59029637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com