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

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

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

  1. 01, A, XX
  2. 02, B, XX
  3. 03, C, XY
  4. 04, D, XX
  5. 05, E, YY

在这里 A,B,C,D,Emachine name 以及 XX,XY,YYcompany name .
现在,我想根据公司的情况来获取数据,而特定公司的数据总是排在第一位。我用的是 groupBycompany .
sql语句

  1. select('*')
  2. from('machine')
  3. groupBy('company')
  4. get()

结果

  1. 01, A, XX
  2. 03, C, XY
  3. 05, E, YY

但我想在哪里检索数据 XX 公司的数据总是以下面的格式排在第一位

  1. 01, A, XX
  2. 02, B, XX
  3. 04, D, XX
  4. 03, C, XY
  5. 05, E, YY

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

j2cgzkjk

j2cgzkjk1#

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

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

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

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

相关问题