[英]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.