On 2/12/2011 12:40 PM, Andre Polykanine wrote:
Hi all,
I'm using in my PHP script the following four MySql queries:
$q1=mysql_query("SELECT * FROM `CandidateQuestions` WHERE
`Category`='1' ORDER BY RAND() LIMIT 1");
$q2=mysql_query("SELECT * FROM `CandidateQuestions` WHERE
`Category`='2' ORDER BY RAND() LIMIT 1");
$q3=mysql_query("SELECT * FROM `CandidateQuestions` WHERE
`Category`='3' ORDER BY RAND() LIMIT 1");
$q4=mysql_query("SELECT * FROM `CandidateQuestions` WHERE
`Category`='4' ORDER BY RAND() LIMIT 1");
and here goes the question: is there a way to make these four in one
so strictly one random question is selected from all of the four
categories?
Thanks!
I think you will need something like this:
SELECT *
FROM `CandidateQuestions`
WHERE `Category` IN (1,2,3,4)
GROUP BY `Category`
ORDER BY RAND()
LIMIT 4
Now, what I'm not sure about, nor have I tested, is will mysql do the
ORDER BY RAND() before or after the GROUP BY.
If that doesn't work, then I would try this instead:
SELECT DISTINCT `Category`,
<your other columns>
FROM `CandidateQuestions`
WHERE `Category` IN (1,2,3,4)
ORDER BY RAND()
LIMIT 4
This will probably do the distinct after the ORDER BY RAND(), but again,
completely untested. YMMV
Give them a whirl and let us know how it works out.
Jim Lucas
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php