Het idee is om het resultaat te ordenen op hun respectieve positie in de array. In dit geval MySQL FIND_IN_SET
functie kan u helpen.
U kunt de volgende volgorde per verklaring toevoegen:
ORDER BY FIND_IN_SET(car.id,'3,10,7')
Opmerking: U moet deze volgorde per instructie omzetten in uw equivalente cake php mysql
vraag.
Voorbeeldinvoer:
vraag:
SELECT *
FROM cars
id
2
3
4
5
6
7
8
9
10
11
Uitvoer:
vraag:
SELECT *
FROM cars
WHERE cars.id IN (3,10,7)
ORDER BY FIND_IN_SET(cars.id,'3,10,7')
id
3
10
7
Bekijk de SQLFIDDLE DEMO hier
Bewerken:
Ik ken de CAKE PHP syntax
niet bij het bouwen van een mysql-query.
Maar de equivalente zoekopdracht in cake php mysql
zou zoiets kunnen zijn:
$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'))
));