Может быть, я запутался, но мне кажется, что я сейчас нахожусь не на том пути, чтобы найти решение.
Я хотел бы выбрать случайные данные из таблицы, но с некоторыми ограничениями Допустим, таблица имеетИМЯ и ВОЗРАСТ ... 10.000 строк
Я хотел бы выбрать (в таком порядке)
- 2 случайных людей старше 60 лет
- 2случайные люди старше 40 лет (включая более 60)
- 2 случайные люди в любом возрасте.
И, конечно, все разные.
Результат
Andy 77
Maria 64
Harry 54
Fritz 62
Anna 24
Moses 43
Какое ваше лучшее решение?
Я думал, что UNION и LIMIT будут работать с ORDER BY RAND () ... но нет ... не разрешено Order by с ограничениями?
Хорошо, в идеальном мире это будет работать
select name, age from persons where age >60 order by rand() limit 2
UNION
select name, age from persons where age >40 order by rand() limit 2
UNION
select name, age from persons where 1 order by rand() limit 2
(это, конечно, не так), и в него входит ошибка, что выбор может включать в себя 2 раза одного и того же человека ...
Так, как я могу решить это?
выберите имя, возраст из людей, упорядочите случай, когда возраст> 60 тогда 'a' предел 2, когда age> 40, затем «b» предел 2, иначе 1 предел «c» asc
, что, конечно, тоже не работает ..