Mysql
 sql >> Database >  >> RDS >> Mysql

Come selezionare i dati da MySQL con LIMIT contiene un elemento con valore ad es. 1

Usando UNION ALL e sub query ti aiuteranno a ottenere il risultato atteso.

La seguente domanda ti aiuterà nel tuo caso:

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()

Trova demo su db<>violino

Nella mia demo, Answer 04 è la risposta corretta per l'ID domanda 1 , nel set di risultati, Answer 04 è sempre restituito insieme ad altre 2 risposte in ordine casuale.