Mysql select var if not null

问题描述 投票:0回答:1

我的表中的某些字段(url、海报、页面)为空(因为该值是稍后添加的)。当使用以下查询选择所有内容时,这些字段(url、海报、页面)将为空,而其余值是正确的(总和)。对于所有具有相同 media_id 的值(url、海报、页面),该值都是相同的。

如何在查询中获得不为空的这些值(如果它们设置在至少 1 行中)? 请注意,我在这里不需要 WHERE IS NOT NULL。

enter image description here

查询:

"SELECT media_id, title, poster, url, page, SUM(c_play) AS total_play, SUM(c_time) AS total_time, SUM(c_download) AS total_download FROM {$statistics_table} GROUP BY media_id, title ORDER BY $order $dir"

这只是一个结果示例:

 "media_id": "41",
    "title": "Beach sunset",
    "poster": null,
    "url": null,
    "page": null,
    "total_play": "5",
    "total_time": "42",
    "total_download": "2",
mysql select notnull
1个回答
0
投票

我建议使用MAX功能:

SELECT 
    media_id, 
    title, 
    MAX(poster) AS poster, 
    MAX(url) AS url, 
    MAX(page) AS page, 
    SUM(c_play) AS total_play, 
    SUM(c_time) AS total_time, 
    SUM(c_download) AS total_download 
FROM 
    {$statistics_table} 
GROUP BY 
    media_id, 
    title 
ORDER BY 
    $order $dir
© www.soinside.com 2019 - 2024. All rights reserved.