Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel:подреждане по къде в

Решение:

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

Допълнителни бележки:

Използване на решението, намерено в статия, озаглавена Вземете всички елементи наведнъж, подредени по текущия ред на идентификатори в клаузата WHERE IN използвайки 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. как да преиндексира mysql таблица

  2. Как да създавате потребителски профили с PHP и MySQL

  3. Как да разбера кои имейли са в същите списъци?

  4. phpMyBackupPro – Уеб базиран инструмент за архивиране на MySQL за Linux

  5. Как да получите всеки N-ти ред в MySQL