如何选择数据库的所有值并按百分比选择其中一个值

时间:2013-02-03 15:44:57

标签: php mysql database

我想要做的是选择数据库的值,

让我们说:

id ---- giftid ---- userid
1         1           481
2         1           422
3         7           123
4         9           542
5         1           122
6         1           455

例如,有4个用户希望拥有相同的giftid: 1,2,5,6

这意味着每个人将有25%被选中。

如何制作“百分比选择”?

2 个答案:

答案 0 :(得分:1)

假设每个userid只能声明一次giftid,您可以在MySQL中使用ORDER BY RAND()。这将首先从表table中选择giftid为1的所有行,然后随机排序结果。 LIMIT 1确保仅返回第一条记录

SELECT * FROM table
WHERE giftid = `1`
ORDER BY RAND()
LIMIT 1

答案 1 :(得分:0)

你看这个吗?

SELECT giftid, 1.0 / COUNT(*) percentSelection
FROM tableName
GROUP BY giftid