Använder UNION ALL
och underfrågan hjälper dig att få ditt förväntade resultat.
Följande fråga hjälper dig i ditt fall:
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()
Vänligen hitta demo på db<>fiol
I min demo, Answer 04
är det korrekta svaret för fråge-id 1
, i resultatuppsättningen, Answer 04
returnerar alltid tillsammans med 2 andra svar i slumpmässig ordning.