簡體   English   中英

將 JSON 字段轉換為 mysql 中的鍵值對

[英]Convert JSON field to key value pair in mysql

我將預測存儲在 mysql 表的 JSON 字段中,如下所示

SELECT id, value from predictions

id | value                 |
+--------------------------+
1  | {"class1": 0.99, "class2": 0.05}
2  | {"class1": 0.94, "class2": 0.01, "class3": 0.4}
...

每行包含一個帶有(可能)不同鍵的字典,但每個字典都遵循這個模式。

我想將其反序列化為如下鍵值結果:

id | class  | confidence |
+------------------------+
1  | class1 | 0.99       |
1  | class2 | 0.05       |
2  | class1 | 0.94       |
2  | class2 | 0.01       |
2  | class3 | 0.4        |

如果 JSON 的格式為包含每個預測 class 的一個字典的列表格式,我可以使用JSON_TABLE ,因為我正在使用 MySQL > 8.0,但是我不知道該怎么做。

當您使用 MySql 8.0 時,您可以使用JSON_KEYS()JSON_EXTRACT()JSON_TABLE來滿足您的要求,如下所示:

SELECT 
    id,
    class, 
    json_extract(value_,concat('$.',class)) confidence 
from test t1
cross join 
    json_table(
        json_keys(value_)
        , '$[*]' columns(class varchar(10) path '$')
    ) t2

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM