【问题标题】:MySQL JSON_TABLE Multiple Nested PathsMySQL JSON_TABLE 多个嵌套路径
【发布时间】:2020-01-20 16:04:22
【问题描述】:

我有以下查询:

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

几乎就像是一个键值查找。 谢谢, -制革商

【问题讨论】:

    标签: mysql sql json nested-queries


    【解决方案1】:

    这是设计使然。来自MySQL 8 manual:

    同级嵌套路径(即同一 COLUMNS 子句中的两个或多个 NESTED [PATH] 实例)一个接一个地处理,一次一个。当一个嵌套路径生成记录时,任何同级嵌套路径表达式的列都设置为 NULL。这意味着单个包含 COLUMNS 子句中单个匹配的记录总数是 NESTED [PATH] 修饰符生成的所有记录的总和,而不是乘积。

    您需要一个外部查询来将相关行分组在一起,或者不使用NESTED PATHs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 2021-09-05
      • 2021-12-05
      • 1970-01-01
      • 2021-10-25
      • 2020-01-11
      • 1970-01-01
      相关资源
      最近更新 更多