MemSQL показывает разные результаты для каждого запуска SQL

Простой список MemSQL показывает результаты в отсортированной последовательности при каждой загрузке запроса.

Запросить разные результаты за цикл: select * from VENDAS_POR_DIA;Стол на real последовательность (ЗАКАЗАТЬ):

MySQL [bucket_8]> select * from VENDAS_POR_DIA order by 1;
+------------+------+
| data_envio | qtde |
+------------+------+
| 2017-09-04 |   63 |
| 2017-09-05 |   48 |
| 2017-09-06 |  813 |
| 2017-09-07 |  177 |
| 2017-09-08 |  679 |
| 2017-09-09 | 1034 |
| 2017-09-10 |   76 |
| 2017-09-11 |  332 |
| 2017-09-12 |  542 |
| 2017-09-13 |  414 |
| 2017-09-14 |  366 |
| 2017-09-15 |  517 |
| 2017-09-16 |  197 |
| 2017-09-17 |   23 |
| 2017-09-18 |  346 |
| 2017-09-19 |  520 |
| 2017-09-20 |  149 |
| 2017-09-21 |  288 |
+------------+------+
18 rows in set (0.20 sec)

Но когда я не использую ORDER BY, последовательность заказа меняется для каждого нового прогона. Как предотвратить это поведение.

1 ответ

Если вы не используете ORDER BY, вы можете получить результаты в любом порядке - порядок не указан, и разные базы данных могут отдавать определенные заказы или нет в зависимости от их реализации. В некоторых случаях MySQL дает вам результаты в определенном порядке, но это не семантическая гарантия. Если вы хотите заказать, вы должны указать ORDER BY.

См. https://dev.mysql.com/doc/refman/5.7/en/sorting-rows.html ("строки результатов отображаются в произвольном порядке") и https://docs.memsql.com/concepts/v5.8/mysql-features-unsupported-in-memsql/.

Вы можете увидеть множество других ответов о поведении MySQL, например, здесь: SQL: Каков порядок запросов по умолчанию по умолчанию?,

Другие вопросы по тегам