Есть ли способ пропустить по значению в mysql? - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь пропустить значения непрерывно в моей таблице 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.

Ответы [ 2 ]

1 голос
/ 27 марта 2020

Предполагая, что порядок определен 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;
0 голосов
/ 27 марта 2020

Вы можете использовать оператор IN

SELECT * FROM TABLE_NAME, ГДЕ НЕ IN (значения);

значения = (2,4, ....);

Вы получите результаты, а в значениях вы можете передать массив, если вам не нужно значение

...