Задать вопрос
SimBioT19
@SimBioT19
{{ user.about }}

Как решить проблему с выборкой?

Я использую данный запрос для выбора 14 случайных записей:
"SELECT r1.name FROM `objects` AS r1 JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM `objects`)) AS id)  AS r2 WHERE r1.id >= r2.id  ORDER BY r1.id ASC LIMIT 14

Проблема вот в чём заключается: если записей всего 100 и данный "код" RAND() * (SELECT MAX(id) FROM `objects`) вернёт 98 то естественно выберется только 2 записи, вместо 14 требуемых, а нужно всегда 14.
Также обращаю внимание, что записей не 100, а лишь максимальный id равен 100, т.е. такой принцип SELECT MAX(id)-14 не подходит.

Каким должен быть запрос, чтобы всегда выбиралось 14 случайных записей?
  • Вопрос задан
  • 120 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя Aleksey Ratnikov К ответам на вопрос (4)
mahoho
@mahoho
Full stack certified PHP developer.
Уберите JOIN и добавьте
ORDER BY RAND() LIMIT 14;
Ответ написан
Комментировать