SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
Zakładając, że correct
jest jakaś int. W przeciwnym razie może być konieczna zmiana DESC
do ASC
.
Możesz „tasować” 5 wyników, używając jeszcze jednego ORDER BY RAND()
tak:
SELECT * FROM (
SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
) as t
ORDER BY RAND()