Сортировать по RAND()

У меня есть Tinder как сценарий с изображениями мужчин и женщин. На каждой странице сценарий показывает одного человека, и пользователь может перейти к следующему человеку. В моей ситуации я использую:

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

Поэтому, заказывая случайным числом, я помещаю в cookie.

У меня много мужчин и немногих женщин. Как я могу повлиять на функцию RAND(), чтобы показать больше женщин?

1 ответ

Сначала начните с выполнения команды order by rand() и удалите материал между (). Это также даст вам случайный порядок.

Во-вторых, если вы хотите, чтобы столько мужчин, сколько женщин, или какое-то отношение, вам нужно выполнить два запроса UNION. Один запрос, где вы получаете случайных мужчин, и еще один запрос, где вы получаете случайных женщин.

редактировать:

Другой способ сделать это - сделать:

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

когда 1: 5 - отношение женщина/мужчина.

licensed under cc by-sa 3.0 with attribution.