Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment sélectionner des données à partir de MYSQL avec LIMIT contient un élément avec une valeur, par exemple. 1

Utilisation de UNION ALL et la sous-requête vous aidera à obtenir le résultat attendu.

La requête suivante vous aidera dans votre cas :

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

Veuillez trouver démo sur db<>fiddle

Dans ma démo, Answer 04 est la bonne réponse pour l'identifiant de question 1 , dans le jeu de résultats, Answer 04 est toujours renvoyé avec 2 autres réponses dans l'ordre aléatoire.