meallhour:
私は、次の書かれているMySQL
JSON配列のクエリ。MySQLバージョンであります8.0.18-commercial
select
networkInfo->>"$.*" as network,
servers->>"$[*]" as server
from table1
where id = 56;
出力は2列を有し、network
そしてserver
JSONタイプの
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