sql >> Database teknologi >  >> RDS >> Mysql

Mysql Codeigniter Active Record - Hvordan laver jeg en where_in-forespørgsel og returnerer den korrekte rækkefølge af resultater?

For at sortere resultatet efter rækkefølgen i dit array kan du gøre følgende:

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

Som du allerede kender rækkefølgen af ​​tallene, kan du bruge Mysql FIELD() funktion:

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

For at oprette sådan en streng kan du bruge implode :

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

Prøv det:

$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. Dårlig praksis i databasedesign

  2. Sådan installeres SQL * PLUS-klient i linux

  3. Unik begrænsning på flere kolonner

  4. Sådan laver du funktionen til gensend e-mail-link i Laravel