2015-07-12 46 views
1

我只是想顯示結果集以相反的順序SELECT查詢的,當我來到這個鏈接: Select last row in MySQLSELECT如何返回未排序的結果集?

在其中一個答案中提到,關係型數據庫沒有第一或最後一行。所以我的問題是如果我們輸入SELECT * FROM table_name,結果集是否有必要與數據輸入數據庫的順序相同?另外,如果有人能告訴我如何以相反的順序在PHP中顯示上述查詢的結果(在查詢本身中不使用任何排序),那就太好了。

回答

4

SQL表格表示無序集合。除非用戶指定了排序,否則表中沒有排序。 SQL結果集表示無序集,除非在最外層有一個order by。這就是語言的定義。

所以,當你做一個select沒有order by,那麼你不能保證行的排序。在很多情況下,訂單看起來像廣告訂單,但您無法保證這一點。

有許多事情可以影響一個選擇返回的順序,如:

  • 多線程的數據庫有獨立的進程中讀取數據。
  • 底層頁面緩存機制不需要按順序讀取頁面。
  • 刪除和後續插入混合行。
  • 查詢可能從索引滿足,而不是表掃描。

如果您需要特定順序的行,請使用order by

+0

感謝完美地解釋它 –

0

你可以用它做簡單的方式

SELECT * FROM your_table ORDER BY id DESC 

我希望這可以幫助你