Die Idee ist, das Ergebnis nach ihrer jeweiligen Position im Array zu ordnen. In diesem Fall MySQL FIND_IN_SET
Funktion kann Ihnen helfen.
Sie können die folgende order by-Anweisung hinzufügen:
ORDER BY FIND_IN_SET(car.id,'3,10,7')
Hinweis: Sie müssen diese Order-by-Anweisung in Ihrem entsprechenden cake php mysql
konvertieren Anfrage.
Beispieleingabe:
Abfrage:
SELECT *
FROM cars
id
2
3
4
5
6
7
8
9
10
11
Ausgabe:
Abfrage:
SELECT *
FROM cars
WHERE cars.id IN (3,10,7)
ORDER BY FIND_IN_SET(cars.id,'3,10,7')
id
3
10
7
Sehen Sie sich die SQLFIDDLE-DEMO hier an
Bearbeiten:
Ich kenne die CAKE PHP syntax
nicht beim Erstellen einer MySQL-Abfrage.
Aber die entsprechende Abfrage in cake php mysql
kann so etwas sein:
$cars = $this->car->find('all', array(
'conditions' => array(
'car.id' => array(3, 10, 7)
),
'limit' => 3,
'order' => array(FIND_IN_SET('car.id' , '3,10,7'))
));