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: Каков порядок запросов по умолчанию по умолчанию?,