gpt4 book ai didi

php - 如何按某些 id 分组并对所有行 json 编码数据求和

转载 作者:行者123 更新时间:2023-11-29 09:42:16 24 4
gpt4 key购买 nike

I have Faced group by some id and Sum other column json_encode data in select query MySQL.
But how to sum total json data value?
Please help Anyone...

使用这个, PHP 7.2、Mysql 5 和 Apache 2。

I am try code
> SELECT `fk_club_id`,`adpoints`,`actpoints`,(JSON_OBJECT('actpoints',
> actpoints, 'adpoints', adpoints)) FROM (SELECT `fk_club_id`,
> SUM(JSON_EXTRACT("$.adpoints")) as adpoints,
> SUM(JSON_EXTRACT("$.actpoints")) as actpoints FROM club_scoresheet
> where status= 1 GROUP BY `fk_club_id`) as t

我的表数据,

    id  |  JSON  column()

15 ['5','6','2']
15 ['5','6','2']
28 ['5','6','1']
28 ['5','6','1']
28 ['5','6','1']

这是我的 table

我的预期结果,

id  | JSON column( total)

15 26
28 36

预期结果

最佳答案

在 MySQL 5.7 版本中,引入了 JSON 函数来解决您的问题。您可以使用以下内容,但它仅允许在 JSON 中包含固定数量的项目时检索总和。您的示例指出每个 JSON 数组中有 3 个项目,所以您应该没问题:

SELECT ID, SUM(CAST(JSON_EXTRACT(JSON,'$[0]') AS UNSIGNED)+CAST(JSON_EXTRACT(JSON,'$[1]') AS UNSIGNED)+CAST(JSON_EXTRACT(JSON,'$[2]') AS UNSIGNED)) AS TOTAL FROM TEST GROUP BY ID;

如果您要升级到 MySQL 8,您还可以使用新的 JSON_TABLE 函数来处理 JSON 数组中的任意数量的项目:

SELECT TEST.ID,SUM(t.VAL) AS TOTAL FROM TEST, JSON_TABLE(JSON, '$[*]' COLUMNS(VAL INT PATH '$')) t GROUP BY ID

您可以在 this db fiddle 中对此进行测试也是如此。

关于php - 如何按某些 id 分组并对所有行 json 编码数据求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56371993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com