sql >> Database >  >> RDS >> Mysql

Mysql Codeigniter Active Record - Hoe voer ik een where_in-query uit en retourneer ik de juiste volgorde van resultaten?

Om het resultaat te ordenen volgens de volgorde in uw array, kunt u het volgende doen:

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

Omdat je de volgorde van de nummers al kent, kun je de Mysql FIELD() functie:

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

Om zo'n string te maken, kun je implode gebruiken :

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

Probeer het eens:

$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. Hoe haal je de eeuw uit een datum in Oracle?

  2. Te veel verbindingen Slaapstand en mysql

  3. Sla nieuwe positie van RecyclerView-items op in SQLite nadat ze zijn gesleept en neergezet

  4. Hoe een door komma's gescheiden reeks records te splitsen en vervolgens opeenvolgend in MySQL te rangschikken?