sql >> Base de Datos >  >> RDS >> Mysql

Cómo seleccionar datos de MYSQL con LIMIT contiene un elemento con valor, por ejemplo. 1

Usando UNION ALL y la subconsulta ayudará a obtener el resultado esperado.

La siguiente consulta le ayudará en su 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()

Busque demostración en db<>fiddle

En mi demostración, Answer 04 es la respuesta correcta para la pregunta id 1 , en el conjunto de resultados, Answer 04 siempre se devuelve junto con otras 2 respuestas en orden aleatorio.