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

Mysql Codeigniter Active Record - Как да направя заявка where_in и да върна правилния ред на резултатите?

За да подредите резултата по реда във вашия масив, можете да направите следното:

$array_of_ordered_ids = array(4,5,2,6);

Както вече знаете реда на числата, можете да използвате Mysql FIELD() функция:

ORDER BY FIELD(id, 4, 5, 2, 6);

За да създадете такъв низ, можете да използвате implode :

$order = sprintf('FIELD(id, %s)', implode(', ', $array_of_ordered_ids));

Опитайте:

$array_of_ordered_ids = array(4,5,2,6);
$this->db->where_in('id', $array_of_ordered_ids);
$order = sprintf('FIELD(id, %s)', implode(', ', $array_of_ordered_ids));
$this->db->order_by($order); 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пълнотекстова заявка с единична кавичка

  2. Как да дам генерирана от Trigger стойност в Hibernate ValueObject?

  3. Как да импортирате база данни с помощта на командния ред

  4. mysql получава разлика вместо SUM

  5. #1055 - Изразът на списъка SELECT не е в клауза GROUP BY и съдържа неагрегирана колона, това е несъвместимо с sql_mode=only_full_group_by