我有以下查询:
SELECT * FROM
JSON_TABLE(
'{"TrackingIds":[-1,-2],"Matrices":[22,23]}'
,"$" COLUMNS(
NESTED path "$.Matrices[*]" COLUMNS (Matrices INT path '$'),
NESTED path "$.TrackingIds[*]" COLUMNS (TrackingId INT path '$')
)) AS j;
哪个产量:
Matrices TrackingId
22 \N
23 \N
\N -1
\N -2
我将如何生成以下内容:
Matrices TrackingId
22 -1
23 -2
几乎像是键值查找。 谢谢, -制革
答案 0 :(得分:0)
这是设计使然。来自MySQL 8 manual:
<块引用>同级嵌套路径(即同一 COLUMNS 子句中的 NESTED [PATH] 的两个或多个实例)被一个接一个地处理,一次一个。当一个嵌套路径生成记录时,任何同级嵌套路径表达式的列都设置为 NULL。这意味着单个包含 COLUMNS 子句中的单个匹配项的记录总数是总和,而不是 NESTED [PATH] 修饰符生成的所有记录的乘积。
您需要一个外部查询来将相关行组合在一起,或者不使用 NESTED PATH
s