sql >> Database >  >> RDS >> Mysql

Hoe gegevens uit MYSQL te selecteren met LIMIT bevat één element met waarde, bijvoorbeeld. 1

UNION ALL gebruiken en subquery zal helpen om het verwachte resultaat te krijgen.

De volgende vraag zal in uw geval helpen:

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

Vind de demo op db<>fiddle

In mijn demo, Answer 04 is het juiste antwoord voor de vraag id 1 , in de resultatenset, Answer 04 is altijd terug samen met 2 andere antwoorden in willekeurige volgorde.




  1. Zijn er nadelen bij het wijzigen van mysql-tabelcodering?

  2. LIMIET 10..20 in SQL Server

  3. Oracle PL/SQL PLS-00201 aanroepen:identifier '001' moet worden gedeclareerd

  4. SQL-querylogica voor beginners met 3 tabellen