Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Laravel:pesan di mana di

Solusi:

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

Catatan Tambahan:

Menggunakan solusi yang ditemukan pada artikel berjudul Dapatkan semua item sekaligus diurutkan berdasarkan urutan id saat ini di klausa WHERE IN menggunakan 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. Dapatkan semua anak dengan id orang tua dan klausa di mana di mysql

  2. mysqli_query() mengharapkan setidaknya 2 parameter, 1 diberikan?

  3. Mysql menghapus kata tertentu dalam string yang dipisahkan koma

  4. Beberapa pernyataan pilih dalam permintaan tunggal

  5. Cara menghitung kemiringan di SQL