php - 按键名称获取项目数

标签 php mysql json laravel

我在 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

表结构

Table structure

表格数据

table data

最佳答案

尝试:

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

参见dbfiddle .

关于php - 按键名称获取项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53783263/

相关文章:

php 到 shell 脚本到 php 通过无密码 ipv6 ssh 隧道获取值

php - 按标记的所有类别显示联系人数据库,然后按字母顺序排列

PHP:preg 替换日期时间

php - 从 MySql 填充选项选择菜单

php - 从 mysql 时间戳字段中选择不同的月份和年份并在 php 中回显它们

php - 将 BLOB 从 MySql 读取到 PHP 中的二进制文件?

python - 在 Python 中读取 excel 文件时出现编码问题

java - 用于 Web 服务的 GSON

mysql - 尝试将正则表达式应用于选择查询中的列

javascript - AngularJS json 数据未显示在文本区域上