Как получить следующую / предыдущую двойную запись в MySQL? - PullRequest
0 голосов
/ 19 июня 2020

всем привет! Прошу помощи, чтобы понять, как действовать с кодом sql. У меня есть таблица, как на фото

введите здесь описание изображения

в ячейке kiss_count делать дубликаты в записях, см. фото. как я могу получить записи, например, начиная с 6 лет? Я пытался сделать что-то подобное, но он не соблюдает список, пропустите kiss_count 6 и go прямо до 2, проблема в том, что есть дубликаты, такие как 6, 6 или 11, как я могу продолжить? Я мог бы опираться на список идентификаторов, чтобы уважать вызовы в правой irdine, код, который yso, таков:

WHERE kiss_count < '6'  ORDER BY kiss_count_total DESC LIMIT 5");

вопрос в том, могу ли я заказать список с дубликатами?

Еще пробовал

WHERE kiss_count < '6' AND ID < '8'  ORDER BY kiss_count_total DESC LIMIT 5");

НО НЕ РАБОТАЕТ

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Итак, вы хотите заказать поле kiss_count, в котором есть дубликаты. Для этого вам нужно использовать дополнительное поле. Читая заголовок, вы также хотите получить следующие 5 значений.

Вы можете использовать order by в 2 столбцах, предложение where не требуется:

select * from my_table order by kiss_count desc, id asc;

Поскольку запрос select * from my_table order by kiss_count desc, id asc всегда дает одну и ту же последовательность, вы можете получить результаты, используя offset.

Итак, в вашем примере вторая страница должна иметь offset из 5 и row_count из 5:

// page 2
select * from my_table order by kiss_count desc, id asc limit 5, 5;
// page 3
select * from my_table order by kiss_count desc, id asc limit 10, 5;
0 голосов
/ 19 июня 2020

Он пропускает 6, потому что ищет kiss_count < 6. Вы должны проверить kiss_count <= 6

WHERE kiss_count <= '6'  ORDER BY kiss_count_total DESC LIMIT 5");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...