gpt4 book ai didi

mysql - 按降序选择每第 n 行

转载 作者:行者123 更新时间:2023-11-29 19:02:34 25 4
gpt4 key购买 nike

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
  1. 选择以下所有内容:
  2. 从以下位置选择排名、ID 和温度:
  3. 从表中选择所有内容和行号作为排名,按 ID 降序排列
  4. 最后只输出能被5整除余数为1的行号

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

最佳答案

似乎您只需要在三个查询之一的所需列上按 dec 排序。我认为第二个作为 order by 适用于同一级别的选择。既然你想要你的 rownum 有序 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

关于mysql - 按降序选择每第 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43744923/

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