SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
Ако приемем correct
е някакъв вид int. В противен случай може да се наложи да промените DESC
към ASC
.
Можете да 'разбъркате' 5-те резултата, като използвате още един ORDER BY RAND()
така:
SELECT * FROM (
SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
) as t
ORDER BY RAND()