1

したがって、customer_ratingとofficial_ratingの2つのフィールドを持つモデルがあります。私は明らかにどちらかで並べ替えることができます。私は興味があります:検索を行うとき、それらの両方のフィールドの平均でソートするためのクリーンな方法はありますか?

4

2 に答える 2

0

Use virtualFields

$this->Model->virtualFields['sum_field'] = 'Model.field_1 + Model.field_2';
$this->Model->find('all', array(
    'order' => array(
        'Model.sum_field'
    )
));
于 2013-02-16T08:02:36.183 に答える
0

別のフィールド「avg_rating」を保持し、モデルの「afterSave()」を介して入力することをお勧めします。これは常に最新の状態に保たれ、過剰な MySQL 計算を常に行う必要はありません。

その時点で他の価値と同じように扱うことができるので、あなたの人生はずっと楽になるはずです。

于 2013-02-16T06:14:25.090 に答える