Php 按键名称获取项目计数
我在MySQL数据库中有这些记录。在JSON类型列上Php 按键名称获取项目计数,php,mysql,json,laravel,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键计算数组项
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
表结构
表数据
确定是否可以使用此查询:
SELECT type,JSON_LENGTH(media) FROM `tabl4` group by type
从这里检查执行情况:尝试:
选择
`类型`,
总和
JSON_长度为`媒体','$.images'
`媒体`
从…起
`表名称`
分组
`类型`;
请参阅。您想要通过php还是通过查询来实现它?只需mysql查询就可以了,thanksIt并没有做应该做的事情。我只想得到“媒体->图像”中按类型分组的所有图像的计数。不,实际上是8,因为有最后一条记录,它是类型1,有2个图像。我认为这个查询是通过检查演示来理解的。我不明白为什么它不能在我的本地机器上工作。这可能是因为媒体列在我的本地服务器上是JSON类型的吗?另外image.jpeg只是一个例子。数据将具有不同的图像名称和不同的扩展名,而此查询将无法处理该名称。我想是的,尝试将其更改为varchar或text-its-betterYes,这就是我想要的。非常感谢你!