By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE Questions (Id INTEGER, Question VARCHAR (100));
INSERT INTO Questions (Id, Question) VALUES
(1, 'My Questions 1'), (2, 'My Question 2');
CREATE TABLE Answers (Id INTEGER, QId INTEGER, Answer VARCHAR (100), Correct VARCHAR(5));
INSERT INTO Answers (Id, QId, Answer, Correct) VALUES
(1, 1, 'Answer 01', 'false'), (2, 1, 'Answer 02', 'false'),
(3, 1, 'Answer 03', 'false'), (4, 1, 'Answer 04', 'true'),
(5, 1, 'Answer 05', 'false'),
(6, 2, 'ans 1', 'false'), (7, 2, 'ans 2', 'false'),
(8, 2, 'ans 3', 'false'), (9, 2, 'ans 4', 'true');
Records: 2 Duplicates: 0 Warnings: 0
Records: 9 Duplicates: 0 Warnings: 0
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 |
---|
Answer 02 |
Answer 04 |
Answer 01 |