Как извлечь N случайных записей из SQL таблицы?

Часто возникает необходимость извлечь несколько случайных записей из SQL таблицы. Например, отобразить 10 случайных рецептов, или 5 случайных новостей.

Можно измудряться на PHP, придумывая способ формирования условия WHERE для случайных строк. А можно сделать одной строкой:

  1. SELECT * FROM TABLE ORDER BY RAND() LIMIT 10
  • * – перечень полей для извлечения
  • table – таблица
  • 10 – кол-во случайных записей

Всего-то делов.

  • #1
    Вася, 11/08/2010 19:21

    Если размер TABLE велик, или выборка идет не из одной таблицы, а из нескольких, да еще и со сложными условиями, то данный вариант может надолго загрузить движок БД. И это хорошо, если пользователь никуда не спешит, а что делать, если задача требует почти моментального отклика?

  • #2
    Григорий, 16/08/2010 11:35

    Действительно, что делать, если требуется почти моментальный отклик? Может вы нам подскажете?

  • #3
    soul, 12/10/2010 12:10

    Средствами php вызывать цикл, запрашивая записи со случайным ID.

Ваши комментарии:

также вы можете зарегистрироваться
Подпишитесь на новые записи моего блога:
Добавить в закладки: (в том числе и в Twitter)

Читайте также:

  • Инструмент админа phpBB3