Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql Codeigniter Active Record - Wie führe ich eine Where_in-Abfrage durch und gebe die richtige Reihenfolge der Ergebnisse zurück?

Um das Ergebnis nach der Reihenfolge in Ihrem Array zu sortieren, können Sie Folgendes tun:

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

Da Sie die Reihenfolge der Zahlen bereits kennen, können Sie den Mysql FIELD() Funktion:

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

Um einen solchen String zu erstellen, können Sie implode verwenden :

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

Probieren Sie es aus:

$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);