按键名获取项目计数

2wnc66cl  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(300)

我在mysql数据库中有这些记录。在json类型列上。

Record1: {"images": ["image.jpeg", "image.jpeg"]}
Record2: {"images": ["image.jpeg", "image.jpeg", "image.jpeg"]}
Record3: {"images": ["image.jpeg"]}

如何通过json属性的键名(在我的例子中是images)获得图像的总数?
我正在尝试实现与运行下面的查询相同的功能,但是从images键计算数组项。

SELECT
  `field`,
  count( * ) AS total 
FROM
  `table_name` 
WHERE
  `condition`
GROUP BY
  `something`

这将给你这个结果:

field      total
------------------
field1       5
field2       2

我要达到的目标是:

field      total
 -----------------
 images       6

表结构

表数据

jdzmm42g

jdzmm42g1#

尝试:

SELECT
  `type`,
  SUM(
    JSON_LENGTH(`media`, '$.images')
  ) `media`
FROM
  `table_name`
GROUP BY
  `type`;

见小提琴。

2ledvvac

2ledvvac2#

确定您可以使用此查询:

SELECT type,JSON_LENGTH(media) FROM `tabl4` group by type

从这里检查执行情况:demo

相关问题