Въпрос за rand() + mysql db

Th3MaN

Registered
Здравейте,

Имам една таблица с думи. Таблицата се състой от 3 колони. ID, Word, num_replay. Демек ID, самата дума и последното е число, което определя броя колко пъти се повтаря.
И в тази таблица имам 100+ записа. Искам да изкарвам само 30 който да са на rand() принцип, демек при всеки рефреш да са различни. До тук лесно.
Код:
SELECT * FROM table ORDER by rand();
Обаче, искам определени думи да се показват повече, според полето num_replay. Примерно думата с най-голяма стойност на полето num_replay да се показва при рефреш, най-често, а пък думата с най-малка стойност да се показва най-рядко.

Не, знам дали можах, да го обесня, разбираемо, но дано някой ме разбере и даде идея. Аз, за сега не мога да се сетя за нищо...
 
Така вади, от всяко num_replay по един резултат. Примерно имам 3 думи с '5' вади една от тях. 5 думи с '2' вади една от тях и т.н. Донякъде добре, обаче, не вади повече пъти тези който са с по-голямо число в полето num_replay :(
 
kulov каза:
Код:
ORDER by rand(), num_replay DESC

По-скоро ще е обратното :)

Код:
SELECT * FROM `table` ORDER BY num_replay DESC, rand() LIMIT 30

Групирането пък ми се вижда напълно излишно.

ПП. Английския не ми е сила, но все си мисля, че трябва да бъде num_reply :) replay е друго.
 
Не, става така. Връща винаги едни и същи резултати. Целта е резултатите да са различни...

п.п Имената са примерни, не съм се замислял толкоз специално затова съм го объркал, но те не са толкова важни...
 
Не, става въртях я тая заявка по какви ли не начини... друга е явно цаката...
 
Код:
$random_row = mysql_fetch_row(mysql_query("select * from YOUR_TABLE order by rand() limit 1"));

echo $random_row;
или
Код:
$range_result = mysql_query( " SELECT MAX(`id`) AS max_id , MIN(`id`) AS min_id FROM `table` ");
$range_row = mysql_fetch_object( $range_result );
$random = mt_rand( $range_row->min_id , $range_row->max_id );
$result = mysql_query( " SELECT * FROM `table` WHERE `id` >= $random LIMIT 0,1 ");
 

Back
Горе