首页 > 解决方案 > 有没有办法可以在 mysql 中按值跳过?

问题描述

我试图在我的 MySQL 表中连续跳过值,例如:我在这里有一个表

time      value
t1        val1
t2        val2
t3        val3
t4        val4
t5        val5

我需要的结果是

time      value
t1        val1
t3        val3
t5        val5

希望你们理解我的问题同样我需要跳过 2 个值,3,4 和 5。

标签: mysqlsqlrdbms

解决方案


假设顺序由 定义time,在 MySQL 8+ 中,您可以使用row_number()为排序的每一行分配一个数字time,然后使用模运算符仅选择具有奇数的行%

SELECT x.time,
       x.value
       FROM (SELECT t.time,
                    t.value,
                    row_number() OVER (ORDER BY t.time) rn) x
       WHERE rn % 2 = 1;

推荐阅读