如何查询mysql json列中对象的对象

如何查询mysql json列中对象的对象,mysql,mysql-8.0,mysql-json,Mysql,Mysql 8.0,Mysql Json,在我的orders表中有一个order\u摘要JSON列,其结构如下 { "total": 16.895, "products": { // products is an object of objects instead of array of objects "98": { "price": "2.400", "quantity": 2, "sub_total": 4.8, "product_id": 100, "v

在我的
orders
表中有一个
order\u摘要
JSON列,其结构如下

{
  "total": 16.895,
  "products": { // products is an object of objects instead of array of objects
    "98": {
      "price": "2.400",
      "quantity": 2,
      "sub_total": 4.8,
      "product_id": 100,
      "variant_id": 98
    },
    "395": {
      "price": "3.900",
      "quantity": 1,
      "sub_total": 3.9,
      "product_id": 401,
      "variant_id": 395
    },
    "732": {
      "price": "7.695",
      "quantity": 1,
      "sub_total": 7.695,
      "product_id": 754,
      "variant_id": 732
    }
  }
}
我想做的,

我必须计算一个给定的
variant\u id
售出的商品总数,因此我想从
产品
对象内的
数量
字段中获取总和

问题

遗憾的是,products字段不是一个对象数组,而是一个对象对象数组。钥匙为
变体\u id
本身。所以我下面的查询不起作用

从订单中选择sum(订单汇总->“$.products.quantity”),其中订单汇总->“$.products.variant\u id”=98
(返回空结果集)

我认为这是因为产品阵列中存在密钥。那么我该如何解决这个问题呢


我正在使用Mysql 8,如果需要更多信息,请告诉我。

经过一些尝试和错误,在朋友的帮助下,我找到了以下解决方案

SELECT SUM(order_summary -> '$.products."98".quantity') as sum
FROM orders
WHERE JSON_CONTAINS_PATH(order_summary, 'all', '$.products."98"')