基于添加多个列的值的复杂SQL查询

时间:2017-01-04 18:38:44

标签: php mysql wordpress

我有一个名为music_lib的表,它有一堆列和超过2000个条目。

id | track_id | total_plays | total_downloads | likes | active | etc | etc

我试图仅根据id选择最近的50个活动条目,但我想相对于以下列的组合值(所有整数)对它们进行排序:

total_plays + total_downloads + likes

所以基本上我想要最新的50个条目按其受欢迎程度排序(受欢迎程度取决于每个条目的组合播放,下载和喜欢)。

但我不知道如何用PHP / MySQL(使用wordpress)来表达这个查询..

我知道我可以使用以下内容获得最近的50个条目,但不知道如何根据上面提到的三个列的组合数字来订购这些结果。

$getpodcasts = $wpdb->get_results( "SELECT * FROM music_lib WHERE active = 1 ORDER BY id DESC LIMIT 50");

1 个答案:

答案 0 :(得分:1)

然后使用order by和你的计算然后如下面的id -

$getpodcasts = $wpdb->get_results( "
    SELECT * FROM music_lib 
    WHERE active = 1 
    ORDER BY (track_id + total_plays + total_downloads) DESC,
             id desc 
    LIMIT 50");

首先查找track_id + total_plays + total_downloads并相应地对它们进行排序,然后按ID排序