Mit UNION ALL
und Unterabfrage helfen, das erwartete Ergebnis zu erhalten.
Folgende Abfrage hilft in Ihrem Fall weiter:
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()
Bitte finden Sie Demo auf db<>fiddle
In meiner Demo Answer 04
ist die richtige Antwort für die Frage-ID 1
, in der Ergebnismenge Answer 04
wird immer zusammen mit 2 anderen Antworten in zufälliger Reihenfolge zurückgegeben.