Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何始终在Laravel中首先获取特殊类别项目数据_Mysql_Sql_Laravel_Laravel 5 - Fatal编程技术网

Mysql 如何始终在Laravel中首先获取特殊类别项目数据

Mysql 如何始终在Laravel中首先获取特殊类别项目数据,mysql,sql,laravel,laravel-5,Mysql,Sql,Laravel,Laravel 5,假设我有一个名为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、E是机器名,XX、XY、YY是公司名 现在,我想根据公司的情况获取数据,而特定公司的数据总是排在第一位。为此,我将groupBy与company一起使用 SQL select('*') from('machine') groupBy('company') get() 结果 01

假设我有一个名为
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、E
机器名
XX、XY、YY
公司名

现在,我想根据公司的情况获取数据,而特定公司的数据总是排在第一位。为此,我将
groupBy
company
一起使用

SQL

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

01, A, XX
03, C, XY
05, E, YY
但我想检索数据,其中公司的数据总是排在第一位,如下格式所示

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

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

您可以使用以下布尔条件,根据公司名称是否为
XX
进行订购:

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

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

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

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

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

@尼克……完全正确。但是如果我想先得到数据,然后再得到数据,最后得到数据,那我该怎么办?@Nick…绝对正确。但是如果我想先使用数据,然后再使用数据,然后再使用数据,那么我应该怎么做呢?