私はこれに似たテーブルを持っています: http://sqlfiddle.com/#!2/8c877
例として、「ユーザー」によって行われる「アクティビティ」のテーブルだとしましょう。
テーブルから user_id ごとに 1 つのランダムな行を選択する最も効率的な方法は何ですか?
たとえば、上記のテーブルの場合、select は 5 行を返します。user_id
3に 1 つ、4に1 つ、8に 1 つ、23に 1 つ、90に 1 つ。
私はこのアプリケーションに PHP を使用しているので、考えていたことの 1 つは、すべてのアクティビティのビット リストをクエリし、PHP でそれらをループして、user_id ごとにランダムに 1 行を抽出することでした。これにより、MySQL サーバーへの SELECT 呼び出しが 1 回だけになります。
あるいは、これは一連のサブ選択で実行できると思いますが、その構文を設定する方法がわかりません。とにかく遅くなるかどうかはわかりません...