如何总是在laravel中首先获取一个特殊的分类项数据

rt4zxlrg  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(321)

假设我有一张名为 machine 有3列( id , name , company ).
表中有5个数据。

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

在这里 A,B,C,D,Emachine name 以及 XX,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

怎么做?有人能帮忙吗?提前谢谢。

j2cgzkjk

j2cgzkjk1#

您可以根据公司名称是否为 XX 或者不,在中使用布尔条件 orderbyRaw :

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

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

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

相关问题