【发布时间】:2019-10-29 21:45:35
【问题描述】:
这是来自 MySQL 8 的一小批记录,带有 JSON 字段
id, cmd_json, reg_day
(
1,
'[
{"id": 1, "qty": 1, "tax": 2, "ref": "art 1", "price": 100},
{"id": 2, "qty": 1, "tax": 1, "ref": "art 2", "price": 10}
]',
'2019-10-29'
),
(
2,
'[
{"id": 1, "qty": 1, "tax": 2, "ref": "art 3", "price": 12}
]',
'2019-10-29'
);
我想要税 1 和税 2 的记录总和
这是我的方法,但结果是错误的
$q_t1s = Model::where('reg_day', $date)->where('cmd_json', 'like', '%"tax": 1%')->get();
$sumT1 = 0;
foreach ($q_t1s as $q_t1):
$t1s = $q_t1->cmd_json;
foreach ($t1s as $t1):
$sumT1 += ($t1['qty'] * $t1['price']);
endforeach;
endforeach;
dd($sumT1);
我用 Laravel 6 编码
如果你能帮我找到解决办法,谢谢
【问题讨论】:
-
您是否正在寻找一个 MySQL 解决方案?应该可以编写一个执行计算的 SQL 查询。
-
另外,请向我们展示您的预期结果。
-
$sumT1 给 110。我开始看清楚了,但我仍然感到困惑......