2017-06-11 56 views
0

我想在db表中插入一行,這樣新插入的行就是在SELECT * FROM表名中出現的第一行?如何訂購數據庫插入?

通常,DB插入將在現有row0下插入row1,select語句首先返回r0,然後返回r1。換句話說,就像一個隊列。

現在我想插入r2,這樣r2顯示在r0之前?

+0

確實很重要嗎?應該如何處理它們 – maSTAShuFu

+4

如果你不在* SELECT中指定顯式的ORDER BY,那麼返回的行的排序是** undefined **,不能保證。在嘗試命令INSERT方面絕對沒有意義 - 實現排序的唯一方法是在你的SELECT語句中明確定義一個ORDER BY **子句...... –

+1

「通常,DB插入將會在現有row0下面插入row1,select語句首先返回r0,然後返回r1,換句話說就像一個隊列。「不,這完全不正確。 –

回答

3

沒有ORDER BY子句的選擇句子的順序不確定,每次查詢數據時都會有所不同。實現所要求的正確方法是在SELECT語句中使用ORDER BY,並有一列用於保存表中結果的等級並按該列排序。爲了獲得更好的性能,該列可以用作聚集索引。