2016-04-30 42 views
0
| ID | name | link | 
     1   one   good 
     2   two  allow 
     3   tree   data 
     4   four   last 
     5   five   rade 

$data = DB::table('info')->plunk('link'); 

好這個請求讓我默認使用這種鏈接字段:Laravel查詢生成器「的問題」不返回我原來的默認數據庫,從排序字段值

  • 數據
  • 最後
  • RADE
  • 允許

而不是用正確的方式 - 原排序一樣,你可以在表中字段中看到:

  • 允許
  • 數據
  • 最後
  • RADE

我的queston是..
如何從鏈接領域數據庫?你知道,原來的排序沒有給我的代碼排序方法,如:

->orderBy('id', 'asc') 

只是原來的。

+0

你不應該依賴「自然排序」。該排序可能會意外改變。 'orderBy'有什麼問題? – Josh

+0

錯誤不是orderBy,而是使用Laravel,SQL系統給你原來的排序,但是不是。第二個錯誤,我不想執行更多的代碼,你知道,更多的代碼,更多的時間來加載!那麼如何解決Laravel這個非常重要的問題呢? –

回答

1

錯誤不是orderBy,而是與Laravel,SQL系統給你原來的排序,但laravel沒有。第二個錯誤,我不想執行更多的代碼,你知道,更多的代碼,更多的時間來加載!那麼如何解決Laravel這個非常重要的問題呢?

自然排序是不可預知的,這就是爲什麼你按ID排序。要完成你想要的可靠,你應該使用orderBy。如果你試圖依靠自然排序,你會引入許多頭痛和問題。自然分揀是不可預測的,這不是Laravel的缺點。

排序不會以任何方式顯着影響性能,特別是如果該表是按ID編制索引的。如果你不確定如何索引中的列,請閱讀:
https://dev.mysql.com/doc/refman/5.5/en/column-indexes.html

您將無法完成你所需要的東西,而無需使用order by條款。你問題的本質就是要求一個命令。幸運的是,您的ID列是完成此操作的完美可行方式。

+0

謝謝,現在我確定SQL沒有默認排序,實際上,這是我的問題。 –