Mysql
有條件地對對像數組的屬性求和
我有一個 JSON 欄位,其中每個條目的格式為
[ {date: '2021-06-28', value: 1}, {date: '2021-06-27', value: 2}, {date: '2021-06-26', value: 3}, ... ]
我正在嘗試對位於特定日期的那些對象的值求和,例如上述數據中的 2021-06-27 和 2021-06-28 將是 1 + 2 = 3。
我認為這與此有關,
JSON_SEARCH
但我沒有太多使用 JSON 欄位的經驗,並且有點困惑。
如果 JSON 中的每一行都具有相同的兩個屬性,則應考慮將它們放入表列 (
date
和value
)。這將使後續的 SQL 更簡單。
你可以使用
JSON_EXTRACT
SQL 程式碼如下所示:
SELECT SUM(JSON_EXTRACT(json_field, '$.value')) FROM table WHERE JSON_EXTRACT(json_field, '$.date') REGEXP '2021-06-28|2021-06-27';