Mysql

有條件地對對像數組的屬性求和

  • June 30, 2021

我有一個 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 中的每一行都具有相同的兩個屬性,則應考慮將它們放入表列 (datevalue)。這將使後續的 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';

引用自:https://dba.stackexchange.com/questions/294932