【发布时间】:2017-09-22 11:32:12
【问题描述】:
一个简单的 MemSQL 列表在每次加载查询时按排序顺序显示结果。
查询每次运行的不同结果:select * from VENDAS_POR_DIA;
real 序列上的表(ORDER):
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 时,每次新运行的顺序都会改变。如何防止这种行为。
【问题讨论】:
-
SQL 表和结果集代表 无序 集。如果您希望结果按特定顺序排列,请使用
order by。 -
我在 MySQL 上执行了相同的查询,如果我使用相同的数据运行相同的命令,结果与插入行的顺序不同。
-
你不应该依赖 observed 行为是一致的行为,除非它有文档支持它总是有效的。
标签: sql sql-order-by singlestore