このクエリの目標は、コンテストへのエントリの mysql データベースから 10 人の勝者を選ぶことです。列は「product_id」、「uid」、および「winner」です。
勝者は常に 0 (今のところ、勝者は選ばれていないため)、uid は一意のインデックス (1 人につき 1 つのエントリ)、product_id は 10 の異なる製品 ID の 1 つです。コンテストに参加するために、ユーザーはログインし、獲得したい 10 個の製品のいずれかを選択しました。
データベースには 1000 行あり、10 個の製品 ID ごとにそれぞれ約 100 行あります。
10 個の異なる製品 ID ごとに 1 つのランダムなエントリを選択する 1 つのクエリが必要です。以下のクエリは 10 個のランダムなエントリを選択していますが、一部の製品 ID は同じです。
SELECT DISTINCT product_id, uid FROM database.table WHERE winner = 0 ORDER BY RAND( ) LIMIT 0 , 10
このクエリを改善して、必要な方法で機能させるにはどうすればよいですか?