簡體   English   中英

如何從MYSQL Json extract中提取Key名稱以@開頭的數據?

[英]How to extract data from MYSQL Json extract with Key name starting with @?

下面的查詢在鍵名稱以 [& 符號] @type 開頭的地方失敗。 有沒有辦法在不更新表中的 Json 鍵名的情況下獲取數據。

SELECT JSON_ARRAYAGG(JSON_OBJECT (
    'id',JSON_EXTRACT(INV_MASTER, "$[0].id[0]") ,
    'href',JSON_EXTRACT(INV_MASTER, "$[0].href[0]"),
    '@type',JSON_EXTRACT(INV_MASTER, "$[0].@type[0]"),
    'entityChar',JSON_EXTRACT(INV_MASTER, "$[0].entityChar")
    ))
    as MASTER from PROFILE;

這似乎是 mysql 不允許在 Json 函數中使用一些特殊字符。

沒有這樣的問題。 您只是簡單地使用了不正確的 JSON 路徑。

演示:

CREATE TABLE test (id INT, val JSON);
INSERT INTO test VALUES 
(1, '[{"id":11, "@value":"value 1"}, {"id":111, "@value":"value 11"}]'),
(2, '[{"id":22, "@value":"value 2"}, {"id":222, "@value":"value 22"}]');
SELECT id, val->>'$[0]."@value"' value1, val->>'$[1]."@value"' value2
FROM test;
ID 價值1 值2
1個 值 1 值 11
2個 值 2 值 22

小提琴

暫無
暫無

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

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