【发布时间】:2018-05-14 15:30:03
【问题描述】:
我有一个表格,例如:id |姓名 |日期添加
有内容:
1| Mark | 2018-02-01 10:00:00
2| Andrew | 2018-02-01 10:00:00
当我尝试执行此请求时:select * from table order by date_add
我按下一个顺序获得行:2, 1
发生在 Percona MySQL docker 中
在我的主机上使用相同的 Percona,我得到了 1、2 个订单
如何在我的主机上启用 Docker 中的逻辑?
【问题讨论】:
-
两个记录的日期相同...在这种情况下,您可以期望没有排序。如果您需要在两个日期相同时确保订单,请添加
Order BY date_add, id。 -
@JNevill 没有默认的主键排序吗?
-
由于在这种情况下
date_add字段是相同的值,因此排序有些随意,并且在不同的实现中可能会出现不同的结果。你有什么要求?如果date_add相同,您是否要求id按升序排列?如果是这样,只需指定:select * from table order by date_add, id。没有默认排序。 -
没有。在任何 RDBMS 中都没有默认排序。必须始终指定。
-
@arturios 这里没有什么奇怪的。超出 ORDER BY 子句指定的顺序未定义。任何实现都可以随心所欲。