Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Странное поведение limit X offset Y в запросах
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть таблица с двумя полями, одно из них ключ. Скрипт создания таблицы и заполнения можно взять здесь Выполняю запрос, который сравнивает две порции таблицы для пагинации: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Логично предположить, что не должно оказаться одинаковых записей в обоих подзапросах? Однако mysql возвращает три таких записи, а Mariadb возвращает одну. авторmysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper авторmysql Ver 15.1 Distrib 10.2.6-MariaDB, for osx10.12 (x86_64) using readline 5.1 Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 12:45 |
|
||
|
Странное поведение limit X offset Y в запросах
|
|||
|---|---|---|---|
|
#18+
indapublicЛогично предположить, что не должно оказаться одинаковых записей в обоих подзапросах?Ну вообще-то нет. Потому что ключ сортировки не обеспечивает уникальности. А внутри группы записи имеют право на каждый чих меняться местами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 13:06 |
|
||
|
Странное поведение limit X offset Y в запросах
|
|||
|---|---|---|---|
|
#18+
Akina, допустим. Тогда два вопроса: 1. Если я создам таблицу create table as select * from aaa, то с ней такого нет 2. Если записи меняются местами, то как тогда реализуется пагинация? (Данный код генерируется Symfony, кстати говоря) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 13:26 |
|
||
|
Странное поведение limit X offset Y в запросах
|
|||
|---|---|---|---|
|
#18+
indapublicкак тогда реализуется пагинация?Пагинация организуется по ключу сортировки, который обеспечивает уникальность. Запрос должен быть, например, таким: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. indapublicЕсли я создам таблицу create table as select * from aaa, то с ней такого нетВы же сами устроили себе лотерею. Надо ли удивляться, что в лотерее иногда выигрывают, а иногда нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 13:56 |
|
||
|
Странное поведение limit X offset Y в запросах
|
|||
|---|---|---|---|
|
#18+
Akina, повторюсь, что этот код формируется Symfony ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 14:07 |
|
||
|
Странное поведение limit X offset Y в запросах
|
|||
|---|---|---|---|
|
#18+
indapublicэтот код формируется SymfonyВот этот самый запрос с двумя подзапросами? не? тогда о чём речь... Наиболее вероятно, что при пагинации таким манером просто используются кэшированные данные запроса - а там записи выходного набора уже расположены в некоем порядке. Вы же составили запрос, в котором каждый подзапрос будет выполнен независимо, да к тому же подзапросы не кэшатся - надо ли удивляться, что в них различается порядок следования записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 14:33 |
|
||
|
Странное поведение limit X offset Y в запросах
|
|||
|---|---|---|---|
|
#18+
Akina, На каждую страницу формируется то, что в подзапросах. И записи дублируются. Нет, не на кэше. Ваше мнение понял, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 14:42 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39476188&tid=1830593]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 375ms |

| 0 / 0 |
