30th
Май

Как случайно выбрать данные из бд?

Posted by Chas under Пост-обзор

как из базы средствами mysql выдернуть случайные записи. Т.е. допустим я функции передал, сколько мне нужно записей. Дак как мне выдернуть их случайно.

Johnatan:
ORDER BY RAND() – забудьте про это. Была б моя воля – вообще уничтожил бы эту конструкцию, чтоб она не работала вообще.
Слишком медленно она работает.

Самый лучший вариант выборки случайных записей из базы -

SELECT `t`.*
FROM (
SELECT FLOOR (RAND() * (
SELECT count(*) FROM `table`
)) num ,@num:=@num+1 from (
SELECT @num:=0
) a , `table` LIMIT 5
) b , `table` t WHERE b.num=t.`id`

, где 5 – это число строк, которое необходимо вытащить, `table` таблица откуда нужно вытащить.

тема на форуме

Похожие статьи