SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.01.2022 09:18:50

hibinyru
Участник
Зарегистрирован: 26.01.2022
Сообщений: 1

при SELECT LIMIT есть повторения

Всем привет. что-то у меня глюк с сортировкой в mysql, не могу понять что не так:

есть 2 запроса :

SELECT id FROM 2020_medicine WHERE id_region=1 AND status=1 ORDER BY rate_summ DESC LIMIT 0,12;

SELECT id FROM 2020_medicine WHERE id_region=1 AND status=1 ORDER BY rate_summ DESC LIMIT 12,12;

Которые должны выводить id не повторяющиеся вроде как.

но на деле во второй выборке встречаются id из первой выборки, что не должно быть. почему так? что за глюк?

id - int AUTO_INCREMENT первичный
id_region - int
status - tinyint
rate_summ decimal(4,1)

индекс id_region + status

PS. Версия сервера: 10.3.31-MariaDB-0ubuntu0.20.04.1 , Версия клиента базы данных: libmysql - mysqlnd 7.4.3


Прикрепленные файлы:
Attachment Icon 2022-01-26_09-14-23.jpg, Размер: 45,810 байт, Скачано: 183

Неактивен

 

#2 26.01.2022 14:19:21

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: при SELECT LIMIT есть повторения

Вероятно у вас больше 12 повторов по rate_summ.

При неуникальном rate_summ запрос вида
SELECT id FROM ... ORDER BY rate_summ ..
может возвращать id в случайном порядке в рамках каждого rate_summ.

Нужно задать однозначную сортировку - ORDER BY rate_summ, id

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson