SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
En supposant que correct
est une sorte d'entier. Sinon, vous devrez peut-être modifier DESC
vers ASC
.
Vous pouvez 'mélanger' les 5 résultats en utilisant un autre ORDER BY RAND()
comme ceci :
SELECT * FROM (
SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
) as t
ORDER BY RAND()