2011-07-29 71 views
0

我需要修改CakePHP中的一個系統,將字段上的字母排序順序更改爲字母順序排列,但是減去第一個字符(同時仍顯示整個字段)。高級排序CakePHP

所以基本上,如果他們有.. a1, a3, b2, b4的排序順序將是a1, b2, a3, b4

目前各種基於find()的代碼是有辦法,我可以強制這種類型的排序爲它還是我需要寫一些類型自定義查詢?

+0

你需要在分頁列表中排序嗎? – pleasedontbelong

+0

不,我不需要分頁 - 最終結果將進入選擇框。 – Toby

+1

所以也許它更好地排序在PHP中,因爲ORDER子句可以減慢你的查詢 – pleasedontbelong

回答

2

好..你有兩種選擇:

查詢後用php排序。您可以使用。但是,這不會,如果你想分頁結果

工作,或者你可以修改查找查詢到這樣的事情:

$this->MyModel->find('all',array(... ,'order'=>'SUBSTRING(MyTable.sortfield,2) ASC')); 

的想法是產生這樣的查詢:

SELECT * FROM `MyTable` WHERE ... ORDER BY SUBSTRING(sortfield,2); 

祝你好運