兰德订购()

时间:2014-06-10 10:28:59

标签: php mysql

我有一个类似Tinder的脚本,上面有男性和女性的图像。在每个页面上,脚本显示一个人,用户可以转到下一个人。在我的情况下,我使用:

ORDER BY rand(".preg_replace('/\D/', '', Cookie::get('random')).")

所以按照我放入cookie的随机数排序。

我有很多男性和少数女性。如何影响RAND()函数以显示更多女性?

1 个答案:

答案 0 :(得分:3)

首先从order by rand()开始,然后移除()之间的内容。这也会给你一个随机的订单。

其次,如果你想要与女性一样多的男性,或者某种比例,你需要UNION两个问题。一个查询,你得到随机的男人,另一个查询你随机的女人。

修改

另一种方法是做:

order by (if(gender='f',rand()/5,rand())

当1:5是女人/男人的比例时。