sql >> Databáze >  >> RDS >> Mysql

Mysql Codeigniter Active Record – Jak provedu dotaz where_in a vrátím správné pořadí výsledků?

Chcete-li seřadit výsledek podle pořadí ve vašem poli, můžete provést následující:

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

Jak již znáte pořadí čísel, můžete použít Mysql FIELD() funkce:

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

K vytvoření takového řetězce můžete použít implode :

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

Zkuste to:

$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. Připojení existující databáze pomocí MySQL

  2. Názvy sad MySQL ODBC 5.1 nejsou povoleny ovladačem

  3. Mohu ovládat GROUP BY v orm django 1.3?

  4. MySQL Amazon RDS:Překročen časový limit čekání na zámek