美文网首页
数据列表同时按两个字段排序

数据列表同时按两个字段排序

作者: 地狱咆哮Zzzzz | 来源:发表于2016-09-07 16:20 被阅读33次

一、问题描述:

users数据表有两个字段 创建时间 created_at  真实姓名 real_name

现在展示users的list需要的排序方式为 有real_name的排后面,没有的排前面;而且两部分都按created_at desc 排序

id         created_at           real_name

1            2016-01               40

2            2016-02                null

3            2016-03               20

4            2016-04                null

5            2016-05                30

6            2016-06                null

期望排序为

id        created_at          real_name

6            2016-06                null

4            2016-04                null

2            2016-02                null

5            2016-05                30

3            2016-03                20

1            2016-01                40

如果只用 ->orderBy('real_name','asc')->orderBy('created_at','desc')结果为

id        created_at          real_name

6            2016-06                null

4            2016-04                null

2            2016-02                null

1            2016-01                40

5            2016-05                30

3            2016-03                20

因为real_name不同 所以有real_name的created_at排序没有生效

二、解决办法:

->orderBy(\DB::raw('ISNULL(real_name)'),'desc')->orderBy('created_at','desc')

使用sql判断real_name是否为空,如果为空就是1,不为空就是0;这样real_name就只有1和0,是0 的排后面(因为0代表real_name不为空),是1的排前面。

相当于:

id        created_at          real_name

6            2016-06                1

4            2016-04                1

2            2016-02                1

5            2016-05                0

3            2016-03                0

1            2016-01                0

结束。

相关文章

  • 数据列表同时按两个字段排序

    一、问题描述: users数据表有两个字段 创建时间 created_at 真实姓名 real_name 现在展示...

  • 【后台】列表需求说明模版

    一、列表排序 ~按两个字段有无值排序 列表默认按照【提醒时间】—【创建时间】字段排序。提醒时间字段有值,按照提示时...

  • Laravel使用Eloquent ORM查询时多字段排序

    查询时 数据列表 可能是根据两个字段的不同情况进行排序 比如:数据库的两个字段status(状态)、created...

  • elasticsearch 排序

    查询全部字段,按某个字段排序 查询指定字段,按某个字段排序

  • MongoDB聚合后组内排序

    分组之后希望按原字段进行排序,比如说时间戳,可以在分组数据中用$first显示原数据,然后在利用管道对该字段进行排序

  • 关于iOS通讯录分组排序方式

    iOS排序优化。 1.当按某个字段排序时。 我们可以按字段名字当key存入数据 2.key 一个组 3.key +...

  • kettle 数据同步

    数据同步一般要与 排序记录、合并记录 两个对象同时使用 首先确保数据流的字段是一样的,可利用 字段选择 的移除和排...

  • jq将ajax从后台返回的数据自动排序

    从数据库查询出来的按EXCHANGE_INTEGRAL字段升序(异步分页排序) 结果ajax请求过来的数据顺序却按...

  • SQL-排序查询

    三.排序查询 语法:select 查询列表字段 from 表 where 筛选条件 order by 排序列表的字...

  • MySql 排序问题

    单个字段排序 注意:默认是正序排列,所以asc可忽略 两个及以上字段排序 中文排序 由于数据库编码通常都是UTF-...

网友评论

      本文标题:数据列表同时按两个字段排序

      本文链接:https://www.haomeiwen.com/subject/drijettx.html