sql >> Databáze >  >> RDS >> Mysql

Jak vybrat data z MYSQL s LIMIT obsahuje jeden prvek s hodnotou např. 1

Pomocí UNION ALL a dílčí dotaz vám pomůže získat očekávaný výsledek.

Ve vašem případě vám pomůže následující dotaz:

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

Najděte demo na db<>fiddle

V mé ukázce Answer 04 je správná odpověď na otázku id 1 , ve výsledné sadě Answer 04 se vždy vrátí spolu se 2 dalšími odpověďmi v náhodném pořadí.




  1. Jak Cot() funguje v PostgreSQL

  2. ORACLE Prohledejte všechny tabulky řetězce pomocí sloupce BLOB

  3. Aliasing tabulky nefunguje v nezpracovaných dotazech Oracle SQL uvnitř Django

  4. Je aktualizace MySQL, která mění více sloupců, neatomická?