Проблем:
Искате да ограничите броя на редовете в резултат на заявка в MySQL, PostgreSQL или SQLite.
Пример:
В exam таблица, има имена на студентите с резултатите от изпита.
| name | резултат_изпит |
|---|---|
| Джанет Морген | 9 |
| Тая Бейн | 11 |
| Ан Джонсън | 11 |
| Джош Каур | 10 |
| Елън Торнтън | 8 |
Искате да получите трите реда с най-добри резултати от изпита.
Решение:
SELECT * FROM exam ORDER BY exam_result DESC LIMIT 3;
Резултатът от заявката изглежда така:
| name | резултат_изпит |
|---|---|
| Тая Бейн | 11 |
| Ан Джонсън | 11 |
| Джош Каур | 10 |
Дискусия:
Първо, сортирайте редовете по exam_result колона в низходящ ред с помощта на ORDER BY клауза и DESC ключова дума. След това след ORDER BY клауза, използвайте LIMIT ключова дума с определен брой редове, които искате да върнете (тук, 3 ).
ORDER BY exam_result DESC LIMIT 3
Ако искате да извлечете три реда на случаен принцип вместо най-добрите три, пропуснете ORDER BY част.
SELECT * FROM exam LIMIT 3;
Разбира се, можете да извлечете произволен брой редове. Просто заменете 3 с желания от вас номер.