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
- Select 一切来自:
- Select 排名、ID 和温度来自:
- Select everything and rownumber as rank from the table as t 按 ID 降序排列
- 最后只输出能被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
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
- Select 一切来自:
- Select 排名、ID 和温度来自:
- Select everything and rownumber as rank from the table as t 按 ID 降序排列
- 最后只输出能被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