Използване на UNION ALL
и подзаявката ще ви помогне да получите очаквания резултат.
Следната заявка ще помогне във вашия случай:
SELECT Answer FROM (
SELECT * FROM (
SELECT Answer, 1 AS ManualOrder FROM Answers WHERE Correct = 'true' AND QId = 1
UNION ALL
SELECT Answer, RAND() FROM Answers WHERE Correct != 'true' AND QId = 1
) AS Q
ORDER BY ManualOrder DESC LIMIT 3
) W ORDER BY RAND()
Моля, намерете демо на db<>fiddle
В моята демонстрация, Answer 04
е правилният отговор за идентификатора на въпроса 1
, в набора от резултати, Answer 04
винаги се връща заедно с 2 други отговора в произволен ред.