簡體   English   中英

如果聲明在

[英]If statement in

我將 sql 從 select 查詢聚合到 json 數組中,如下所示:

CONCAT('[',GROUP_CONCAT(JSON_OBJECT('value', measured_at, 'day', datediff(measurements.measured_at, athletes.tracking_started_at))), ']') as `values`

有時 json object 從datediff返回負值。 在這種情況下,我想做的是根本不返回 json object。

例如。 我現在得到的:

[{ "value": 23, "day": 12 }, { "value": 23, "day": -25 }, { "value": 23, "day": 40 }]

我想得到什么:

[{ "value": 23, "day": 12 }, { "value": 23, "day": 40 }]

我怎樣才能做到這一點?

GROUP_CONCAT()中使用CASE表達式:

GROUP_CONCAT(
  CASE 
    WHEN datediff(measurements.measured_at, athletes.tracking_started_at) >= 0 
      THEN JSON_OBJECT('value', measured_at, 'day', datediff(measurements.measured_at, athletes.tracking_started_at))
  END
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM