代码之家  ›  专栏  ›  技术社区  ›  DataVader

mysql连接json

  •  0
  • DataVader  · 技术社区  · 8 年前

    为了避免使用临时表,我希望将一些数据存储为变量中的json数组并在其上进行连接。数据如下:

    [
      {
        "CarID": "9",
        "Tank": "11.4",
        "Distance": "120",
        "From": "Brussels",
        "To": "Bruges"
      },
      {
        "CarID": "22",
        "Tank": "15.9",
        "Distance": "70",
        "From": "Eupen",
        "To": "Cologne"
      }
    ]
    

    我想在mysql中将一个变量设置为该值,并能够执行如下操作:

    SELECT
        (
            Cars.Consumption
            * JSON_UNQUOTE(JSON_something('???','$.Distance'))
        ) - JSON_UNQUOTE(JSON_something('???','$.Tank')) AS neededRefuel
    FROM    Cars
    WHERE   JSON_SEARCH(
                @myJson,
                'one',
                CAST(Cars.CarID AS JSON),
                NULL,
                '$[*].CarID'
            ) IS NOT NULL
    

    这只是一个简单的例子。 显然json值作为整数在mysql中不容易检测,所以我设置了引号。

    我想在视图中使用这种过滤器,所以临时表实际上不是一个选项。

    使用mysql 8.0.11

    1 回复  |  直到 8 年前
        1
  •  0
  •   DataVader    8 年前

    我只是谦卑 JSON_TABLE 它似乎正是我想要的:)