mysql - 使用两列选择随机条目

标签 mysql random

我发起了一场比赛,推荐他人的人每次推荐都会增加获胜的几率。现在我必须弄清楚如何使用 mysql 或 php 来实际为他们提供更好的赔率。选择随机行不会削减它。

在我的表格中有两列,一列用于 ID,一列用于推荐 ID。该表通过将 ID 添加到推荐 ID 字段来跟踪谁推荐了谁,因此前几行数据如下所示:

name   id  referralid 
mark   15   20 
ted    20 
jim    22   20

所以“ted”应该有 3 次获胜的机会,因为他推荐了另外两个人。我如何在 mysql 或 php 中执行此操作?

最佳答案

SELECT people.name, people.id
FROM people
LEFT JOIN people referred_people ON referred_people.referralid = people.id
ORDER BY RAND()
LIMIT 1

假设您的表名为people,这会选择

mark
ted
ted
jim

使用臭名昭著的 ORDER BY RAND() 结构对其进行随机排序(速度较慢,但​​您并未要求最高性能),然后从该列表中选择一个结果。

关于mysql - 使用两列选择随机条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12917029/

相关文章:

mysql - 如果用户参加事件,如何正确连接 3 个表以获得结果

php - 如何在 MySQL 中获取两个日期之间的特定日期

php - 数据库名称开头带有破折号的 MySQL 转储

java - 随机数生成器正在生成巨大的负数

java - Random.nextInt() 产生非常相似的数字?

java - 按给定订单获取订单 android SQlite Android

php - 如何在 WordPress 中使用 mysqli

java - 如何使用Java获得从现在到过去三个小时之间的任意随机时间

javascript - 将图像附加到 1-10 之间随机生成的数字?

r - 从 R 中正态分布的特定部分采样