InternetMaster
@InternetMaster
Интернет

Как в mysql взять любую из первых 10 строк?

Задача: есть таблица MYSQL, нужно взять случайную из первых 10 строк по ORDER BY DESC.
Взять 10 первых строк и выбрать случайную в коде (основном) нельзя, так как это подзапрос.

Пример:
SELECT id FROM table_1 WHERE id = (SELECT id FROM table_2 ORDER BY id DESC LIMIT 10 [и тут надо чтобы он выбрал случайную из этих 10])
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT ...
  FROM (
    SELECT ...
      FROM ...
      ORDER BY `id` DESC
      LIMIT 10
  ) AS `t`
  ORDER BY RAND()
  LIMIT 1
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@grek_cheburek
Программист самоучка
ORDER BY RAND() LIMIT 10
Но мне кажется, что это даст сильную нагрузку, если строк очень много

Хотя, если использовать desc, то возможно выбрать из массива случайным образом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы