【问题标题】:Laravel order by field lengthLaravel 按字段长度排序
【发布时间】:2017-12-05 12:18:00
【问题描述】:

我想构建一个按特定字段长度排序数据的查询。我需要将此查询重写为 laravel 的 Eloquent ORM。

SELECT * FROM table ORDER BY CHAR_LENGTH(field)

【问题讨论】:

    标签: sql laravel-5.4 laravel-eloquent


    【解决方案1】:

    在我的查询中,我必须为我的字段添加引号。

    User::orderByRaw('CHAR_LENGTH("name")')->get();
    

    【讨论】:

      【解决方案2】:

      查询生成器

      DB::table('table_name')->orderByraw('CHAR_LENGTH(col_name) ASC')->get();
      

      雄辩的 ORM

      User::orderByRaw('CHAR_LENGTH(col_name)')->get();
      

      【讨论】:

        【解决方案3】:

        看来orderByRaw 就是您要查找的内容。这是一个例子:

        User::orderByRaw('CHAR_LENGTH(name)')->get();

        【讨论】:

          【解决方案4】:

          取决于您的喜好:

          DB::table('tblname')->orderBy('LENGTH(field)', 'ASC')->get();
          

          Model::orderBy('LENGTH(field)', 'ASC')->get();
          

          Model::orderBy(DB::raw('LENGTH(field), field'));
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-09-10
            • 2015-06-29
            • 1970-01-01
            • 2020-09-05
            • 2020-07-19
            • 1970-01-01
            • 2015-07-29
            • 2011-04-06
            相关资源
            最近更新 更多