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

Mysql Vyberte několik náhodných řádků a jeden konkrétní řádek

SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5

Za předpokladu correct je nějaký druh int. Jinak možná budete muset změnit DESC do ASC .

Těchto 5 výsledků můžete „zamíchat“ pomocí jednoho dalšího ORDER BY RAND() takhle:

SELECT * FROM (
    SELECT *
    FROM `choises`
    WHERE questionid = :qid
    ORDER BY correct DESC, RAND()
    LIMIT 5
) as t
ORDER BY RAND()



  1. Jak šifrovat data v Oracle pomocí PL SQL

  2. Vysvětlení velikostí řádků Postgres

  3. Ručně zadejte hodnotu primárního klíče ve sloupci JPA @GeneratedValue

  4. Jak extrahovat rok a měsíc od data v PostgreSQL bez použití funkce to_char()?