Menggunakan UNION ALL
dan sub kueri akan membantu mendapatkan hasil yang Anda harapkan.
Kueri berikut akan membantu dalam kasus Anda:
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()
Silakan temukan demo di db<>biola
Dalam demo saya, Answer 04
adalah jawaban yang benar untuk id pertanyaan 1
, dalam kumpulan hasil, Answer 04
selalu kembali bersama dengan 2 jawaban lainnya dalam urutan acak.