【发布时间】:2017-05-02 18:34:55
【问题描述】:
SELECT * FROM ( SELECT @row := @row +1 AS rownum, [column name] FROM ( SELECT * FROM [table name] ) WHERE rownum % 5 = 1
这确实每 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
- 从以下位置选择所有内容:
- 从以下位置选择等级、id 和温度:
- 从表中选择所有内容和行号作为排名,按 ID 降序排列
- 最后只输出能被5整除余1的行号
不要引用我的话,我是一个关于 SQL 东西的大菜鸟。它对我有用,所以我很高兴。
【问题讨论】:
-
从什么降序排列?姓名?只需将 order by 添加到第二个选择查询(不是最里面的,因为那里不需要)
标签: mysql sql-order-by