基本的に、テーブルから最後の 5 つのレコードを取得しようとしています。唯一の問題は、x_id を繰り返すため、同じ x_id を持ついくつかのレコードを取得したくないということです。そのため、これを達成するために「グループ」条件を渡します。ただし、この新しいグループ条件を追加すると、奇妙なことが起こり、クエリの結果でテーブルの一部の行がランダムに省略されます。したがって、ランダムに、いくつかのレコードが持ち込まれ、いくつかは持ち込まれません。そのため、持ってきたはずのレコードがありません。
たとえば: テーブルの最後の 10 レコードは: 1-2-3-4-5-6-7-8-9-0 クエリを実行した後、結果として次のようになるはずです: 0-9-8-7- 6 ただし、ランダムに次の結果が得られます: 9-8-6-5-3 または 0-8-7-6-4
基本的に、いくつかのレコードをスキップします =//
$condicionesComentarios = array('conditions' => array('Comentario.aceptado' => 1), 'limit' => 5, 'order' => 'Comentario.id DESC', 'group' => array('Comentario.empresa_id'));
$ultimosComentarios = $this->Empresa->Comentario->find('all', $condicionesComentarios);
明確化のための更新
エンプレサには多くのコメントがあります
コメンタリオ表のごく一部:
**id** **empresa_id**
1 7
2 9
3 3
4 1
5 1
6 4
7 8
8 5
期待される結果: テーブルの最後の 5 レコード、empresa_id の繰り返しなし
query result-> (id = 8, 7, 6, 5, 3) *empresa_id の繰り返しを避けるため、id: 4 の行はスキップする必要があることに注意してください*
私が得たもの: 一部のレコードは、スキップされるべきではないときにランダムにスキップされます。
query result-> (id = 7, 6, 5, 2, 1) ここで id: 8 の行はスキップされるべきではないことに注意してください。