此查询的目标是从 mysql 数据库中挑选 10 名获胜者参加比赛。列是“product_id”、“uid”和“winner”。
获胜者始终为 0(目前,尚未选择获胜者),uid 是唯一索引(每人一个条目),product_id 是 10 个不同的产品 ID 之一。为了参加比赛,用户登录并选择他们想要赢得的 10 种产品中的哪一种。
数据库中有 1000 行,10 个产品 ID 中的每一个都有大约 100 行。
我想要一个查询,为 10 个不同的产品 ID 中的每一个选择一个随机条目。下面的查询选择了 10 个随机条目,但一些产品 ID 是相同的。
SELECT DISTINCT product_id, uid FROM database.table WHERE winner = 0 ORDER BY RAND( ) LIMIT 0 , 10
如何改进此查询以按我需要的方式工作?