在sql中,我有這個查詢,它完美地工作並按照「按字段排序」給定的數組排序。但在cakephp中它不起作用。如何在cakephp中寫入orderByField 3
SELECT * FROM users
WHERE users.Id IN (3,7,2,13)
ORDER BY FIELD(users.Id ,3,7,2,13)
我按以下順序獲取用戶。這是完美的
user _id
3
7
2
13
CakePHP的3
$unique_user_id_list = (3,7,2,13);
$id_list = '3','7','2','13'; This is string.
$users = $this->Users->find('all',[
'contain' => [],
'conditions'=>['Id IN' => $unique_user_id_list],
'order BY FIELD'=>['Users.Id'=>$id_list]
]);
在此查詢,我得到用戶按照以下順序
user_id
2
3
7
13
我都嘗試以下方法,但沒有一個人的工作。只有「訂單」條款給出了錯誤,而另一個「按字段排序」沒有提供任何錯誤,但不能按預期工作。
'order'=>['Users.Id'=>$id_list]
'order BY FIELD'=>['Users.Id'=>$id_list]
任何想法如何在cakephp 3上面寫入sql查詢來獲得它的工作。
我不希望被用戶ID ASC或DESC。實際上我需要它們按照給定的順序排列。但是,謝謝。 – learner