Select 每第 n 行降序排列

Select every 'nth row in descending order

SELECT * FROM ( SELECT @row := @row +1 AS rownum, [column name] FROM ( SELECT * FROM [table name] ) WHERE rownum % 5 = 1

这确实 return 每 5 行,但按升序排列。我想要的是它首先获取所有数据,将它们按降序排列,然后应用过滤器。

如果先过滤再按降序排列,不会从最新添加的数据开始(4/5的时间)。

我想知道应该怎么做。

提前致谢

编辑:对于有同样问题的人,这是我使用的:

SELECT * FROM
(SELECT rank, id, Temperature FROM 
(SELECT *, @rownum := @rownum + 1 AS rank FROM temperature_room1, 
(SELECT @rownum := 0) r) AS T ORDER BY id DESC) AS J WHERE rank % 5 = 1
  1. Select 一切来自:
  2. Select 排名、ID 和温度来自:
  3. Select everything and rownumber as rank from the table as t 按 ID 降序排列
  4. 最后只输出能被5整除余数为1的行号

不要在这方面引用我的话,我是 SQL 方面的大菜鸟。它对我有用,所以我很高兴。

似乎您只需要在三个查询之一的所需列上按 dec 排序。我认为第二个 order by 适用于同一级别的 select。 ans 因为你想要你的 rownum ordered desc...似乎就是那个地方...

SELECT * 
FROM ( SELECT @row := @row +1 AS rownum, [column name] 
       FROM ( SELECT * FROM [table name] )
       ORDER BY [column name] desc
     )

WHERE rownum % 5 = 1