Problema:
Você deseja limitar o número de linhas resultantes de uma consulta no MySQL, PostgreSQL ou SQLite.
Exemplo:
No
exam
tabela, há nomes dos alunos com os resultados do exame. nome | exam_result |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Você deseja obter as três linhas com os melhores resultados do exame.
Solução:
SELECT * FROM exam ORDER BY exam_result DESC LIMIT 3;
O resultado da consulta fica assim:
nome | exam_result |
---|---|
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Discussão:
Primeiro, classifique as linhas pelo
exam_result
coluna em ordem decrescente usando o ORDER BY
cláusula e o DESC
palavra-chave. Então, após o ORDER BY
cláusula, use o LIMIT
palavra-chave com um número de linhas que você gostaria de retornar (aqui, 3
). ORDER BY exam_result DESC LIMIT 3
Se você quiser recuperar três linhas aleatoriamente em vez das três melhores, pule o
ORDER BY
papel. SELECT * FROM exam LIMIT 3;
Claro, você pode recuperar qualquer número de linhas que desejar. Basta substituir
3 com o número desejado.