选择以前的X行

时间:2012-11-19 07:49:52

标签: mysql

非常简单:我想从名为Image from X的表中选择前10行。通常情况下,它看起来像是:

"select * from image order by image_id desc limit X, 10"

但是,我希望X之后的前10行,而不是接下来的10行(所以,我想要x-1,x-2,x-3等,而不是x + 1,x + 2,x + 3等。)。

这样做的简单方法是什么?

顺便说一句,Image有3列:image_id(主要,AI),image_link和时间戳。

编辑:我不能做“按image_id asc订购”的原因是因为我想建立一个从最新到最旧的列表。按升序排序会将列表创建为最新的列表。

2 个答案:

答案 0 :(得分:2)

我觉得很简单

select * from image order by image_id desc limit (X-10), 10

答案 1 :(得分:0)

试试这个:

SELECT image_id, name
FROM
(
    SELECT 
      *, @rownum := @rownum + 1 AS rank
    FROM image, (SELECT @rownum := 0) t 
    ORDER BY image_id DESC
) t
WHERE rank BETWEEN  10-5 AND 10;

SQL Fiddle Demo