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()
私のデモでは、Answer 04
質問ID1
の正解です 、結果セットで、Answer 04
常にランダムな順序で他の2つの回答と一緒に返されます。