{% else-1 %}

Нет фото
• 31 май 2013, 20:54

•••
Подходящий вариант, для выборки случайной строки из таблицы, в том случае если в таблице большое количество записей.

При маленьком количестве, можно использовать запрос:
$query = \"SELECT id_prd, code, title, info, price, image
FROM \".TABLE_PRODUCTS.\"
WHERE 1 ORDER BY RAND() LIMIT 1\"; ...
0

Нет фото
Г р и н а * [мошенник] 7.59
• 1 июн 2013, 22:06


реально нафига придумывать то что уже придумано тем более таким способом

0

Нет фото
abler98 * 22.68
• 1 июн 2013, 14:25


Призрак, полностью согласен!
Можно так попробовать:
SELECT pk, data FROM test AS r1 JOIN (SELECT (RAND() * (SELECT MAX(pk) FROM test)) AS id) AS r2 WHERE r1.pk >= r2.id ORDER BY r1.pk ASC LIMIT 1;

0

Нет фото
• 1 июн 2013, 02:19


Миледи рекомендую такую штуку не использовать на высоконагруженных проектах.

---
Функа РАНД мускулом не кешится. Вообщем нагрузка на бд будет высокая.
[сообщение прошло проверку админом]

0

Нет фото
• 1 июн 2013, 04:04


ето хорошо если ид идет по порядку,а вот представте ситуевину когда ид идут 1,2,3,4,15,16,24,27...в таком случае если сгенерируется число 10 например,скрипт выведет пустоту.
[сообщение прошло проверку админом]

0

Нет фото
• 1 июн 2013, 04:16


правдо если таблица более 10-20тыс строк скорость реально упадет...

0

Нет фото
• 1 июн 2013, 04:15


можно проще =)

Select * From TABLE Order By rand() Limit 1;

  • 1 из 1