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

Laravel:đặt hàng ở đâu trong

Giải pháp:

$ids = array(1,17,2);
 
$ids_ordered = implode(',', $ids);
 
$items = static::whereIn('id', $ids)
 ->orderByRaw("FIELD(id, $ids_ordered)")
 ->get();

Ghi chú bổ sung:

Sử dụng giải pháp được tìm thấy trên một bài báo có tiêu đề Nhận tất cả các mục cùng một lúc theo thứ tự id hiện tại trong mệnh đề WHERE IN sử dụng Eloquent :

// Raw SQL:
// SELECT * FROM items WHERE id IN (1,2,3,4,5) ORDER BY FIELD(id,1,2,3,4,5);
 
$itemIds = array(1,2,3,4,5);
 
$ids = implode(',', $itemIds);
 
$items = static::whereIn('id', $itemIds)
    ->orderByRaw(DB::raw("FIELD(id, $ids)"))
    ->take($limit)
    ->get();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C # với MySQL - Lỗi:Hướng dẫn phải chứa 32 chữ số với 4 dấu gạch ngang khi cố gắng mở kết nối

  2. Làm cách nào để áp dụng phương thức bindValue trong mệnh đề LIMIT?

  3. Nhóm mệnh đề WHERE trong Codeigniter

  4. Đang gieo SQLite RANDOM ()

  5. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Ubuntu 9.04 (Jaunty)