所以我在数据库中有一堆记录,它们有一个 Date_Created 列,但大多数行都有零数据。
+-----+---------------------+--
| id | Date_Created | Other_Fields...
+-----+---------------------+--
| 2 | 0000-00-00 00:00:00 | ...
+-----+---------------------+--
| 34 | 0000-00-00 00:00:00 | ...
+-----+---------------------+--
| 56 | 0000-00-00 00:00:00 | ...
+-----+---------------------+--
| ... | ... | ...
+-----+---------------------+--
有些行包含此列的非零数据,但这些行目前不是我关心的行。
我想知道的是,为什么当我订购数据by Date_Created asc
时,行会以我没想到的方式返回。这就是 ID 的排序方式。
256
512
1024
1280
1536
257
513
1025
1281
1537
2049
2
258
514
1026
1282
1538
3
259
515
1027
1283
1539
4
260
...
(256 的倍数)+n,其中 Date_Created 本质上是 0,对于整个事情。
这只发生在我select * from table order by Date_Created
. 如果选择单个列 ( select id, Date_Created...
),则 ID 会按顺序排列。
为什么会这样?