私はテーブル "student_points"を持っています。結果を並べ替えるmysqlまたはphp配列関数を使用
id user_id points subject_id
1 10 45 22
2 11 75 23
3 12 78 24
4 10 13 23
5 12 65 23
のように...
このテーブルには、ユーザーとの点の約1000レコードが含まれています。 私がポイントに基づく10件のレコードをしたい(マックスは最初のポイント) だから私は
Select * from student_points order by points limit 0,10
としてMySQLのクエリを使用することができます今の要件は、私たちはグループに最初の10枚のレコードに例えばuser_idを に基づいてこれらの10件のレコードが必要だということです3つは3つの生徒の記録なので、グループで表示する必要があります。 最終的な結果は、あなたが最初のレコードが最もポイントに基づいており、それが学生のIDは今、彼らはuser_idのに応じてグループである、12であることを見ることができます
id user_id points subject_id
3 12 78 24
5 12 65 23
1 10 45 22
4 10 13 23
2 11 75 23
ようにする必要があります。
私は2度お試しました。 結果を取得した後もarray_multisortを試しましたが、両方が正しく動作していません。
結果を取得した後、mysqlクエリまたはグループのいずれかをお勧めします。私はあなたがサブクエリでクエリをラップし、後でuser_id
とpoints
に基づいて結果をソートする必要があると思います
おかげ
ポイントの降順でソートされた 'user_id'ごとに10レコードが必要ですか? – 1000111
ORDER BY user_id DESC、ポイントDESC? – jitendrapurohit
あなたも同様にポイントを集計したいですか? –