SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
Za předpokladu correct
je nějaký druh int. Jinak možná budete muset změnit DESC
do ASC
.
Těchto 5 výsledků můžete „zamíchat“ pomocí jednoho dalšího ORDER BY RAND()
takhle:
SELECT * FROM (
SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
) as t
ORDER BY RAND()