gpt4 book ai didi

mysql - 按非唯一字段排序时获取 'next' 和 'previous'

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:05 26 4
gpt4 key购买 nike

我正在制作图片库。用户可以按评分对该画廊进行排序:

SELECT *
FROM images
WHERE album_id=8
ORDER BY rating DESC, id DESC
LIMIT 0, 10

这将生成图像列表,我很乐意向用户显示:

image_id | rating
--------------------
25 | 10
23 | 10
18 | 9
16 | 9 -- user will click here
15 | 9
89 | 8
67 | 8
60 | 8
5 | 8
101 | 3

之后,用户点击这张图片:

image_id | rating
--------------------
16 | 9

现在,我需要编写一个SQL 查询,它会找出集合中的下一张和上一张图像 以相应地显示链接,只知道image_id 并且该集合按 rating DESC, id DESC 排序。

任务看似微不足道,但我该怎么做呢?解决这个问题的常用方法是什么?

我试过这样的:

   -- get next image
SELECT *
FROM images
WHERE
album_id=8
AND rating <= 9 -- rating of current image
AND image_id < 16 -- id of current image
ORDER BY rating DESC, id DESC
LIMIT 1

但这对我不起作用,以防下一条记录具有不同的评级。

考虑到用户可以选择排序方向和多个参数,是否有更优雅的方法来解决这个问题?

附言我正在为此使用 Django ORM,但用简单的 SQL 回答就可以了。

最佳答案

关于mysql - 按非唯一字段排序时获取 'next' 和 'previous',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25661209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com