Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để chuyển đổi mysql tổng hợp có điều kiện thành truy vấn laravel?

Bạn phải cung cấp aggregate chức năng trong mệnh đề có, chúng ta có thể sử dụng lại cùng một mệnh đề mà chúng ta đã chọn như thế này

$brand = "MAX(CASE WHEN b.attribute_code = 'brand' then b.attribute_value END)";

$model = "MAX(CASE WHEN b.attribute_code = 'model' then b.attribute_value END)";

$category = "MAX(CASE WHEN b.attribute_code = 'category' then b.attribute_value END)";

$subcategory = "MAX(CASE WHEN b.attribute_code = 'subcategory' then b.attribute_value END)";

$brandName = 'honda';

$query = Item::selectRaw("a.number, a.description, {$brand} as brand, {$model} as model, {$category} as category, {$subcategory} as subcategory")
        ->from('items as a')
        ->join('attr_maps as b','b.number','=','a.number')
        ->groupBy('a.number')
        ->havingRaw("{$brand} = ?", [$brandName])
        ->orderBy('description')
        ->paginate(10);

return $query;

CHỈNH SỬA: Sau khi nhận xét

Bạn có thể thực thi cho từng tham số như thế này

$query = Item::selectRaw("a.number, a.description, {$brand} as brand, {$model} as model, {$category} as category, {$subcategory} as subcategory")
    ->from('items as a')
    ->join('attr_maps as b','b.number','=','a.number')
    ->groupBy('a.number')
    ->orderBy('description');

foreach($param as $key => $value) {
     $query = $query->havingRaw("{$$key} = ?", [$value]);
}

$results = $query->paginate(10);

return $results;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kết nối một ứng dụng Laravel với MySQL bằng MAMP?

  2. Kết quả group_concat không hoạt động trong điều kiện IN

  3. Có bất kỳ mức tăng hiệu suất nào trong việc lập chỉ mục một trường boolean không?

  4. Trích xuất các từ cụ thể từ trường văn bản trong mysql

  5. Có cách nào để trả về id của một hàng vừa được tạo trong MySQL bằng PHP không?