我正在处理我的照片库,并且我有一个过滤器可以用威尔逊分数间隔对我的媒体进行排序。这个分数保存在我的表的一个字段中,称为score
对于此查询,我使用以下字段:id
、、UploadTime
score
我遇到的问题是,如果多张图片只有一个竖起大拇指,某些分数将完全相同。在这种情况下,我想按 UploadDate 字段对媒体进行排序,使旧图片的相关性降低。
这是我整理我所有照片的脚本(请记住,分数必须高于 0 才能进入列表)
SELECT *
FROM photos
WHERE status = 0
AND score > 0
ORDER BY score DESC, id DESC
然后获取下一张图片(下一张图片是分数较低的图片,或者如果分数相等,则输出最新上传的图片)。而$id是当前图片的唯一id
SELECT *
FROM photos p
INNER JOIN
(
SELECT score, id
FROM photos
WHERE id = ".$id."
) p2 ON p.score < p2.score
WHERE p.status = 0 AND p.net_votes > 0
ORDER BY p.score DESC, p.UploadTime DESC
LIMIT 1
我已经用尽了所有关于如何做到这一点的想法。