У меня есть база данных, где я хочу получить случайную ничью из моих записей. Я могу сделать это отлично с:
$query = "SELECT * FROM mytable ORDER BY RAND()
Проблема состоит в том, что база данных содержит порядок входа конных прыгунов в соревнование, и ни один прыгун не может прыгать последовательно. У меня есть следующие настройки:
|jumper | horse | id|
| Pedro | gfs | 1 |
| Gustavo | psg | 2 |
| Breno | sdwed | 3 |
| bruno | sdsd | 4 |
| Carlos | powkd | 5 |
| Andrea | linda | 6 |
| Gustavo | handara | 7 |
Я должен помешать тому, чтобы прыгун Густаво был последовательно потянут на прыжок, потому что ему пришлось бы очень быстро менять лошадей. На самом деле, если его вытягивают, он может быть разыгран только после трех других участников. Буду признателен за любые идеи о том, как это сделать.
Просто отфильтруйте последние три перехода из последующих запросов, выполнив:
SELECT * FROM mytable
WHERE id NOT IN (1,4,8) /* use recent id's here */
ORDER BY RAND()
Других решений пока нет …