アイデアは、配列内のそれぞれの位置で結果を並べ替えることです。この場合、MySQL FIND_IN_SET
関数はあなたを助けることができます。
ステートメントごとに次の順序を追加できます:
ORDER BY FIND_IN_SET(car.id,'3,10,7')
注: 同等のcake php mysql
のステートメントごとにこの順序を変換する必要があります クエリ。
サンプル入力:
クエリ:
SELECT *
FROM cars
id
2
3
4
5
6
7
8
9
10
11
出力:
クエリ:
SELECT *
FROM cars
WHERE cars.id IN (3,10,7)
ORDER BY FIND_IN_SET(cars.id,'3,10,7')
id
3
10
7
編集:
CAKE PHP syntax
がわかりません mysqlクエリの構築において。
しかし、cake php mysql
の同等のクエリ そのようなものかもしれません:
$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'))
));