Laravel Query Builder“问题”不会从数据库字段返回原始的默认排序值

时间:2016-04-30 10:56:25

标签: laravel sorting builder

|    ID    |    name    |    link    |
      1          one         good
      2          two        allow
      3         tree         data
      4         four         last
      5         five         rade

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

Ok这个请求默认为我提供了这种类型的链接字段:

  • 数据
  • 最后
  • RADE
  • 允许

而不是以正确的方式 - 原始排序,就像你在表格字段中看到的那样:

  • 允许
  • 数据
  • 最后
  • RADE

我的问题是...... 如何从数据库中获取链接字段?你知道,原始排序没有给我的代码分类方法如下:

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

只是原作。

1 个答案:

答案 0 :(得分: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专栏是完全可行的方法。