MySQLのクエリ内で個別にすべてのJSONの配列要素を一覧表示する方法は?

meallhour:

私は、次の書かれているMySQLJSON配列のクエリ。MySQLバージョンであります8.0.18-commercial

select 
networkInfo->>"$.*" as network,
servers->>"$[*]" as server
from table1
where id = 56;

出力は2列を有し、networkそしてserverJSONタイプの

network              server
---                  ---
[                    [
    "Linux123",          "Server123",
    "RHEL",              "Server1231",
    "abc.com"            "Server1232"
]                    ]

私は変更したいSELECT出力はすべてのための個別の行を有するように、クエリをserver

network                      server
---                          ----  
[                             Server123
    "Linux123",
    "RHEL",
    "abc.com"
]

[                             Server1231
    "Linux123",
    "RHEL",
    "abc.com"
]

[                             Server1232
    "Linux123",
    "RHEL",
    "abc.com"
]
ニック:

あなたは使用することができますJSON_TABLE異なる抽出するためserverの値をservers、その後、CROSS JOINそれにnetworks与えられた値id

SELECT t1.networkInfo->>"$.*" AS network, j.server
FROM table1 t1
CROSS JOIN JSON_TABLE(t1.servers, 
                      "$[*]" COLUMNS (
                        server VARCHAR(20) PATH '$'
                        )
                      ) j
WHERE t1.id = 56

出力(Iアップハックしなければならなかったデモテーブル構造の予想に基づく)を:

network                             server
["abc.com", "Linux123", "RHEL"]     Server123
["abc.com", "Linux123", "RHEL"]     Server1231
["abc.com", "Linux123", "RHEL"]     Server1232

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=387960&siteId=1
おすすめ