【问题标题】:How to always fetch a special category item data first in Laravel如何始终在 Laravel 中首先获取特殊类别项目数据
【发布时间】:2020-06-09 04:05:40
【问题描述】:

假设我有一个名为 machine 的表,它有 3 列(idnamecompany)。

该表中有 5 个数据。

01, A, XX
02, B, XX
03, C, XY
04, D, XX
05, E, YY

这里的A,B,C,D,Emachine nameXX,XY,YYcompany name

现在我想根据公司明智地获取数据,并且特定公司的数据将始终排在第一位。为此,我使用groupBycompany

SQL

select('*')
from('machine')
groupBy('company')
get()

结果

01, A, XX
03, C, XY
05, E, YY

但我想检索XX 公司的数据将始终排在第一位的数据,如下格式

    01, A, XX
    02, B, XX
    04, D, XX
    03, C, XY
    05, E, YY

如何做到这一点?有人可以帮忙吗?提前致谢。

【问题讨论】:

    标签: mysql sql laravel laravel-5


    【解决方案1】:

    您可以根据公司名称是否为XX 进行排序,使用orderbyRaw 中的布尔条件:

    ->orderbyRaw("company = 'XX' DESC")
    

    如果您想按顺序对多个公司进行排序,请使用CASE 表达式:

    ->orderbyRaw("CASE company WHEN 'XX' THEN 1
                               WHEN 'XY' THEN 2
                               ELSE 3
                  END")
    

    【讨论】:

    • @Nick....绝对正确。但是如果我想要XX 数据第一,XY 数据第二和YY 数据最后......那我该怎么办?
    猜你喜欢
    • 2012-10-05
    • 2021-09-13
    • 2012-02-19
    • 2021-03-06
    • 2020-03-31
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多