我有一个类似Tinder的脚本,上面有男性和女性的图像。在每个页面上,脚本显示一个人,用户可以转到下一个人。在我的情况下,我使用:
ORDER BY rand(".preg_replace('/\D/', '', Cookie::get('random')).")
所以按照我放入cookie的随机数排序。
我有很多男性和少数女性。如何影响RAND()函数以显示更多女性?
答案 0 :(得分:3)
首先从order by rand()
开始,然后移除()
之间的内容。这也会给你一个随机的订单。
其次,如果你想要与女性一样多的男性,或者某种比例,你需要UNION
两个问题。一个查询,你得到随机的男人,另一个查询你随机的女人。
修改强>
另一种方法是做:
order by (if(gender='f',rand()/5,rand())
当1:5是女人/男人的比例时。