Brug af UNION ALL
og underforespørgsel vil hjælpe med at få dit forventede resultat.
Følgende forespørgsel vil hjælpe i dit tilfælde:
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()
Find demo på db<>fiddle
I min demo, Answer 04
er det rigtige svar på spørgsmåls-id'et 1
, i resultatsættet, Answer 04
er altid tilbage sammen med 2 andre svar i tilfældig rækkefølge.